快速排序(Quick Sort)是一种常见的排序算法,由英国计算机科学家东尼霍尔(Tony Hoare)在1960年发明。这是一种分治算法,基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
快速排序算法在平均状况下,排序 n 个项目要 (n log n) 次比较。在最坏状况下则需要 (n^2) 次比较,但这种状况并不常见。实际上,快速排序通常明显比其他 (n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成。
快速排序的一个优点是它是不稳定的排序算法,意味着相同的元素在排序后可能会保持其原有的顺序。
下面是一个伪代码示例:
快速排序(数组 a, 长度 n)
如果 n > 1
选择 a[1] 作为服务器托管网基准值
左 = 1
右 = n当 左 当 a[右] >= 基准值
右 = 右 – 1
当 a[左服务器托管网] 左 = 左 + 1交换 a[左] 和 a[右]
快速排序(a, 左, 右)
在这个算法中,我们选择数组的中位数作为基准值,然后将数组分为两部分,一部分是所有小于基准值的元素,另一部分是所有大于或等于基准值的元素。然后对这两部分递归地进行快速排序。
在实际应用中,快速排序是效率非常高的一种排序算法,尤其是在处理大量数据时。
ok,下面是代码
#include
int a[100], n;
void qs(int left, int right)
{
int i, j, t, temp;
if (left > right)
return;
temp = a[left];
i = left;
j = right;
while (i != j)
{
while (a[j] >= temp && i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net