Advertisement

C语言的多种排序算法

阅读量:

1、shell排序(希尔排序)

思想 :依据特定的间隔对记录的下标进行分组,随后对每一组应用直接插入排序算法;随着间隔逐步缩小,各组中包含的关键字数量逐渐增加,当间隔缩减至1时,整个数据集将被划分为单一的一组,此时排序过程结束。

优点 :作为直接插入排序的一种优化形式。
(1)在运行过程中无需占用大量额外存储空间;(2)其时间复杂度与所采用的间隔序列密切相关,例如使用希尔增量时的时间复杂度为O(n^2),而希尔排序的整体时间复杂度下限可达到O(n(log2n)),在处理中等规模的数据时表现出色;(3)在最坏情况与平均情况下的运行效率差距相对较小,相较之下快速排序在最坏情况下的执行效率则会显著下降。

这里写图片描述
  • 希尔增量排序算法的实现代码:
复制代码
       #include <stdio.h>
    
       void shellsort(int array[], int len)
       {
       int dist; //distance
       int i;
       int j;
       in

全部评论 (0)

还没有任何评论哟~