一些排序算法

1. Quicksort (快速排序)

最简单实现:

int partition(int a[], int start, int end)
{
	int pivot = a[start];
	int i = start;
	int j = start + 1;

	while(j <= end)
	{
		if(pivot > a[j])
		{
			swap(a[++i], a[j++]);
		}
		else
		{
			j++;
		}
	}
	swap(a[start], a[i]);
	return i;
}

void quick_sort(int a[], int start, int end)
{
	if(start >= end)
		return;
	
	int q = partition(a, start, end);
	quick_sort(a, start, q-1);
	quick_sort(a, q+1, end);
}

  

posted @ 2011-11-09 09:49  Sw_R  阅读(110)  评论(0编辑  收藏  举报