Advertisement

问题:C++ 习题 - 快速排序

阅读量:

题目描述

选定一个基准值v₀作为参考点,在序列中将所有大于v₀的元素依次移动至其后方位置上,并将所有小于v₀₀的小于等于v₀₀的小于等于v₀的小于等于v₀的小于等于v₀的小于等于v₀的小于等于v的小于等于v的小于等于v的小于等于v的小于等于v的小于等于v的小于等于v的小于等于v个小于等于的情况同样适用

补充说明:如果采用按照从大到小的顺序排列的方法,则可将数值较大的所有数字放置在它前面的位置,并将数值较小的所有数字放置在它后面的位置。

快速排序从小到大排序算法描述:

定义两个变量first和last,并将其赋值为给定序列的第一个元素和最后一个元素所对应的索引

将该数组中的一个元素设为关键数据(此处取该组的第一个数值作为关键数据),并将该值赋给变量key, 记作key = A[first];

从后向前进行搜索,并同时逆序进行(使用--last),找到的第一个小于key的值是A[last]并赋值给A[first];

从第first个位置起依次往后扫描(即从前向后扫描),找到第一个比key大的元素,并将其赋值给last位置;

5)重复第3、4步,直到first=last,将key的值给a[first];

将first两边的两组数据分别再次排序,在依次执行第1至第5步;继续上述操作直至每组数据仅剩一个元素完成排序

现在,我们的题目来了...

输入一组整数,将

全部评论 (0)

还没有任何评论哟~