【排序算法】快速排序算法代码演示

来源:互联网 发布:淘宝母婴节是哪一天 编辑:程序博客网 时间:2024/04/30 20:08

快速排序的特点:

以某个记录为界(该记录称为支点或枢轴),将待排序列分成两部分:

①一部分: 所有记录的关键字大于等于支点记录的关键字

②另一部分: 所有记录的关键字小于支点记录的关键字

快速排序算法描述:

第一步:

任取待排序记录序列中的某个记录(例如取第一个记录)作为基准(枢),
按照该记录的关键字大小,将整个记录序列划分为左右两个子序列。

第二步:

左侧子序列中所有记录的关键字都小于或等于基准记录的关键字 。

第三步:

右侧子序列中所有记录的关键字都大于基准记录的关键字。

第四步:

基准记录则排在这两个子序列中间(这也是该记录最终应安放的位置)。

第五步:

然后分别对这两个子序列重复施行上述方法,直到所有的记录都排在相应位置上为止。

【注意】:

①基准记录也称为枢轴(或支点)记录。

②取序列第一个记录为枢轴记录,其关键字为Pivotkey。

③指针low指向序列第一个记录位置,指针high指向序列最后一个记录位置。

【【简单的说】】:

对于快速排序,
①就是先找到一个枢轴,
②此枢轴将序列分为两个部分,
③左部分和右部分,
④左部分小于此枢轴,
⑤右部分大于等于此枢轴。

算法示例:::

这里写图片描述

【上边示例所使用的思想】:

游标high用于搜索比枢轴小的记录,
游标low用于搜索比枢轴大的记录,
搜索就和枢轴交换并切换游标。

【代码实现的方式】:

原创粉丝点击