• 算法—希尔排序


    希尔排序

    希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。

    希尔排序是基于插入排序的以下两点性质而提出改进方法的:

    • 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率
    • 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位

    过程演示:

     1 #include <stdio.h>
     2 
     3 void shell_sort(int arr[], int len) {
     4     int gap, i, j;
     5     int temp;
     6     for (gap = len >> 1; gap > 0; gap = gap >> 1)
     7         for (i = gap; i < len; i++) {
     8             temp = arr[i];
     9             for (j = i - gap; j >= 0 && arr[j] > temp; j -= gap)
    10                 arr[j + gap] = arr[j];
    11             arr[j + gap] = temp;
    12         }
    13 }
    14 
    15 int main() {
    16     int arr[] = { 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 };
    17     int len = (int) sizeof(arr) / sizeof(*arr);
    18     int i;
    19     shell_sort(arr, len);
    20   
    21     for (i = 0; i < len; i++)
    22         printf("%d ", arr[i]);
    23     return 0;
    24 }
    shell_sort
  • 相关阅读:
    MyEclipse和Eclipse非常方便的快捷键
    java面试题及答案
    Java笔试题解答
    Spring自定义注解
    Spring MVC上传文件
    JS实现购物车特效
    MySQL软件基本管理
    初识数据库
    Python3-IO模型
    Python3-协程
  • 原文地址:https://www.cnblogs.com/CSAH/p/10980179.html
Copyright © 2020-2023  润新知