第1个回答 推荐于2016-11-04
希尔排序:
核心:选数列下标的一定增量为一组,组内排序。
步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P272 图10.5)
1.选增量为数组长度的一半(长度除2取不大于的整数),相隔该增量的元素为一组,组内排序;
2.增量不断减半(原增量除2取不大于的整数),相隔该增量的元素为一组,组内继续排序;
3.直到增量为1,所有元素成为一组,排序结束。
--------------------------------------------------
快速排序:
核心:将当前排列段首元素选为“枢轴”,从当前段两头开始比,比它大的置后,比它小的提前。
步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P275 图10.7)
1. 选首元为“枢轴”,末尾元素从后向前比较,有比“枢轴”小的和“枢轴”交换,然后换从起始元素向后比较,有比“枢轴”大的和“枢轴”交换,再依次换从末尾、从开头轮流比较直到比完。
2. 这时“枢轴”元素把原排列分成两段,如图(a)最后一行所示。
3. 对“枢轴”分开的前段和后段再分别作为独立的排列段,仿照步骤1,重复进行选当前段的首元为“枢轴”、从当前段两头开始比、比它大的置后、比它小的提前。
4. 每个排列段都只剩下一个元素时,结束排序。
自创个人通俗版,仅供楼主参考!本回答被提问者采纳