基础算法之希尔排序
来源:互联网 发布:怎么给淘宝商家打电话 编辑:程序博客网 时间:2024/05/22 13:43
希尔排序是对插入排序的一种改进,它是通过逐步缩小增量,对组内进行插入排序的一种算法。通俗理解就是把数组的下标按一定的增量分组,然后组内进行排序,排序完成后,缩小增量,那么组内元素会越来越多,分组则越来越少,直到增量为1,排序完成后为止。
组内排序的原则:将当前的数存在临时变量temp中,再将当前的数arr[i]与组内排在前面相邻的数arri-group进行比较,若大于则不处理,若小于,则把arr[i-group]的值赋给arr[i],然后继续比较arr2%2agroup”>i-group-group的大小,若大于,则将temp的值赋给arr[i-group],否则继续递推,因组内当前数arr[i]之前的数都是有序的,即只要找到比它小的数,就可以确定其位置。
直接上代码:
C#:public static void ShellSort(int[] arr) { int len = arr.Length; for (int group = len / 2; group > 0; group /= 2) { for (int i = group; i < len; i++) { if(arr[i] < arr[i-group]) { int temp = arr[i]; int k = i - group; while (k >= 0 && arr[k] > temp) { arr[i] = arr[k]; k -= group; } arr[k+group] = temp; } } } } }
Mark and UP
0 0
- 基础算法之希尔排序
- 算法基础之----希尔排序
- 算法基础之排序篇-希尔排序
- 算法基础-希尔排序
- 【算法基础】希尔排序
- 基础算法-希尔排序
- 基础算法系列(十六)排序算法之希尔排序
- 基础算法之四--排序:之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 交换两个变量的值 不使用第三个变量
- java的深复制和浅复制
- 时间转换1
- 设计模式-备忘录模式
- C 二维数组统计不同整数
- 基础算法之希尔排序
- ios tableview自适应
- 开发者所需要知道的 iOS 10 SDK 新特性
- hdu4506 小明系列故事――师兄帮帮忙(快速幂)
- python的全局变量应用
- [BZOJ1568][JSOI2008]Blue Mary开公司(超哥线段树)
- spi协议,工作原理分析
- Multiple markers at this line - The import javax.servlet cannot be resolved
- Hibernate 常见异常处理(转帖)