快速排序

来源:互联网 发布:模拟经营类游戏 知乎 编辑:程序博客网 时间:2024/06/16 07:35


实现思路一:

int Partition(int data[], int length, int start, int end){if (data==NULL || length<1 || start<0 || end>=length)throw new exception("Invalid Parameters!");int index = start + rand()%(end-start+1);Myswap(data[index], data[end]);int small = start - 1;for (index=start; index<end; ++index ){if (data[index] < data[end]) //找比基值小的{++small;if (small != index)Myswap(data[index],data[small]);}}++small; //分界处Myswap(data[small], data[end]);return small;}void QuickSort(int data[], int length, int start, int end){if (start==end)return;int index = Partition(data,length,start,end);if (index>start)QuickSort(data,length,start,index-1);if (index<end)QuickSort(data,length,index+1,end);}






0 0
原创粉丝点击