快速排序

来源:互联网 发布:js 复选框控制display 编辑:程序博客网 时间:2024/05/22 00:25

快速排序,说起来很简单那,这几天突然想来练练笔,结果,两个字,失败。

快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

具体可以参考http://baike.baidu.com/view/19016.htm?from_id=2084344&type=syn&fromtitle=快速排序&fr=aladdin

上述参考地址也是里有各种代码,我只是把c++的代码拷贝过来了,哈哈


/* 从小到大排序*/void Qsort(int a[],int low,int high){if(low >= high){return;}int first = low;int last = high;int key = a[first];/*用字表的第一个记录作为枢轴*/while(first < last){while(first < last && a[last] >= key)--last;a[first] = a[last];/*将比第一个小的移到低端*/while(first < last && a[first] <= key)++first;a[last] = a[first];/*将比第一个大的移到高端*/}a[first] = key;/*枢轴记录到位*/Qsort(a, low, first-1);Qsort(a, last+1, high);/*这里first和last应该相等的,所以应该可以用first*/}

拷贝过来的目的很简单啊,就是为了某天要用的时候直接翻自己这里就可以了。


0 0