10种排序算法比较(直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、折半插入排序、2路插入排序)

本文(所有排序算法代码+综合比较代码)链接:https://download.csdn.net/download/qq_39932172/11217572


一、比较目的:

       由于《数据结构》课本中各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。所以我希望通过随机数据去比较各种算法的关键字比较次数和关键字移动次数,同时给出实际排序时间,以取得直观的感受。

二、比较内容:

  1. 对以下八种常用内部排序算法进行比较:直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序。
  2. 待排序表的表长不小于 10 万;其中的数据用伪随机数程序产生;用5 组不同的输入数据做比较;比较的指标为有关键字参加的比较次数、关键字的移动次数(关键字交换记为 3 次移动)、排序时间。
  3. 最后对结果做简单分析,包括对各组数据得出结果波动大小的解释。

三、思想及具体体现:

总体思路:先点后面——就是先编好每一种算法,当每一种算法都能够运行的时候,然后再将所有的算法结合到一起,组合成综合设计。

具体体现

  1. 首先,用当前时间作为种子,用随机数生成器生成10000个随机数据,作为实验数据。
  2. 然后,用直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序八种内部排序方法对实验数据进行排序,并记录各算法的关键字比较次数和关键字移动次数,以及实际排序时间。
  3. 最后,重复上述操作5次,总结上述数据,并进行比较分析。

四、实验结果分析和比较:

       为了更全面地比较各种比较方法的比较次数,移动次数和运行时间,我先后选取了全部都是乱序的数据,已排好的正序数据,已排好的逆

你可能感兴趣的:(数据结构)