排序算法之希尔排序
来源:互联网 发布:淘宝折800 编辑:程序博客网 时间:2024/05/22 00:06
希尔排序就是把数据每次分成固定步长,并进行排序,例如{ 8, 5, 6, 1, 7, 0 },下标0到5,第一次拿下标 (0和3),(1和4),(2和5)排序,排序的结果是{ 1, 5, 0, 8, 7, 6 },第二次拿下标(0和1),(1和2),(2和3),(3和4),(4和5),(5和6)比较就能得出排序的结果
代码如下
public class Test {public static void main(String[] args) {int[] values = { 8, 5, 6, 1, 7, 0 };values = sort(values);for (int i : values)System.out.print(i + " ");}public static int[] sort(int[] values) {if (values == null || values.length <= 1)return values;int split = values.length / 2;while (1 <= split) {// 把距离为 split 的元素编为一个组,扫描所有组for (int i = split; i < values.length; i++) {int j = 0;int temp = values[i];// 对距离为 split 的元素组进行排序for (j = i - split; j >= 0 && temp < values[j]; j = j - split) {values[j + split] = values[j];}values[j + split] = temp;}split = split / 2; // 减小增量}return values;}}
可以看出希尔排序会省很多移位,但是数据排列的每次都要移动时性能就非常低,所以它很不稳定。
阅读全文
0 0
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 数据库笔试面试42——SQL标准中用来调用存储过程的
- python 产生随机数,随机字符串
- 总结
- java 大段代码的变量命名问题
- 数据结构之红黑树(一)——基础分析
- 排序算法之希尔排序
- 练习使用参数
- windows rap环境搭建
- Linux系统在SSH客户端关闭后继续运行程序
- [LeetCode]414. Third Maximum Number
- android获取位置和计算两个位置坐标
- Struts2.5环境搭建
- redis配置文件 属性说明
- android Handler Message MessageQueue Looper ThreadLocal源码解读