c语言经典排序算法(8种-含源代码)(5)

发布时间:2021-06-06

鸡尾酒配方

}

}

}

}

七.快速排序

/* 快速排序(quick sort)。在这种方法中,

* n 个元素被分成三段(组):左段left,

* 右段right和中段middle。中段

* 仅包含一个元素。左段中各元素都小于等

* 于中段元素,右段中各元素都大于等于中

* 段元素。因此left和right中的元

* 素可以独立排序,并且不必对left和

* right的排序结果进行合并。

* 使用快速排序方法对a[0:n-1]排序

* 从a[0:n-1]中选择一个元素作为middle,

* 该元素为支点把余下的元素分割为两段left

* 和right,使得left中的元素都小于

* 等于支点,而right 中的元素都大于等于支点

* 递归地使用快速排序方法对left 进行排序

* 递归地使用快速排序方法对right 进行排序

* 所得结果为left+middle+right

*/

void Quick_sort(int data[],int low,int high)

{

int mid;

if(low<high)

{

mid=Partition(data,low,high);

Quick_sort(data,low,mid-1); /* 递归调用 */

Quick_sort(data,mid+1,high);

}

}

/* 要注意看清楚下面的数据之间是如何替换的,

* 首先选一个中间值,就是第一个元素data[low],

* 然后从该元素的最右侧开始找到比它小的元素,把

* 该元素复制到它中间值原来的位置(data[low]=data[high]),

* 然后从该元素的最左侧开始找到比它大的元素,把

* 该元素复制到上边刚刚找到的那个元素的位置(data[high]=data[low]),

* 最后将这个刚空出来的位置装入中间值(data[low]=data[0]),

c语言经典排序算法(8种-含源代码)(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219