希尔排序
来源:互联网 发布:淘宝店卖衣服去哪进货 编辑:程序博客网 时间:2024/05/22 10:00
希尔排序又叫缩小增量排序,它通过比较相距一定间隔的元素来工作,各趟比较所用的距离(希尔增量)随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。
希尔排序为不稳定的排序,其时间复杂度为O(nlogn),空间复杂度为1
void ShellSort(int A[], int size);
int main(void)
{
int A[] = {9,8,7,6,5,4,3,2,1,3};
int i,size = sizeof(A)/sizeof(int);
ShellSort(A, size);for(i = 0; i < size; i++) printf("%d ",A[i]);printf("\n");return 0;
}
void ShellSort(int A[], int size)
{
int i, j, Increment;
int Temp;
for(Increment = size/2; Increment > 0; Increment /= 2){ for(i = Increment; i < size; i++) { Temp = A[i]; for(j = i; j >= Increment; j -= Increment) { if(Temp < A[j-Increment]) A[j] = A[j-Increment]; else break; } A[j] = Temp; }}
}
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- POJ 2393 Yogurt factory
- iOS facebook PoP 初体验
- Android 系统中WiFi的部署
- 变长参数函数
- C# Rows.Remove() 和 DataRow.Delete() 的区别
- 希尔排序
- C语言笔记(三)
- Windows下,Netbeans使用C++的配置方法
- leetcode 12 interger to Roman && 13 Roman to Integer
- java数据类型杂记
- 关于两个日期间隔计算及日期其他相关
- 计算机机械硬盘的结构和工作原理
- Dijkstra算法的认识
- p2p半分布式开源项目调研: