ShellSort(希尔排序)
来源:互联网 发布:ubuntu系统和windows 编辑:程序博客网 时间:2024/06/16 15:42
希尔排序
希尔排序是是插入排序的一种更高效的改进版本
希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了(此时插入排序较快)。
//平均时间复杂度O(n^1.3)//空间复杂度O(1)//最优时间复杂度O(n)//最坏时间复杂度O(n^2)//不稳定#include <stdio.h>void shellSort(int a[], int len){ int gap, i, j; int temp; for (gap = len / 2; gap > 0; gap /= 2) { for (i = gap; i < len; i++) { temp = a[i]; for (j = i - gap; j >= 0 && a[j] > temp; j -= gap) { a[j+gap] = a[j]; } a[j+gap] = temp; } }}int main(){ int a[8]; printf("Please input the number:\n"); for(int i=0;i<8;i++) scanf("%d",&a[i]); shellSort(a, 8); for (int i=0; i<8; i++) { printf("%d\n",a[i]); } return 0;}
阅读全文
0 0
- 希尔排序(ShellSort)
- 希尔排序 (ShellSort)
- 希尔排序(Shellsort)
- 希尔排序(ShellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- 希尔排序(ShellSort)
- 希尔排序(shellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- ShellSort(希尔排序)
- 希尔排序(Shellsort)简介
- 排序算法之希尔排序(Shellsort)
- Java排序算法--希尔排序(Shellsort)
- 排序算法之希尔排序(ShellSort)
- 排序- 希尔排序 ShellSort
- 希尔排序(ShellSort程序完整版)
- 03_希尔排序(ShellSort)
- js的数据类型和变量:
- 机器学习笔记十六:错误来源Bias和Variance
- PHP与webserver
- C白白的游戏服务器开发笔记:创建开源项目LCServer
- 64位和32位的寄存器和汇编的比较
- ShellSort(希尔排序)
- unity实现android虚拟现实应用
- protothread_API
- Spring Cloud 客服端负载均衡 Ribbon
- java从弃坑到web
- 母函数讲解
- 累进可除
- js获取数组、字符串末尾项的方法
- css整理