概述
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
我们这里说说八大排序就是内部排序。

思想:
1.将数的个数设为n,取奇数k=n/2,将下标差值为k的书分为一组,构成有序序列。
2.再取k=k/2 ,将下标差值为k的书分为一组,构成有序序列。
3.重复第二步,直到k=1执行简单插入排序。
代码步骤:
1.首先确定分的组数。
2.然后对组中元素进行插入排序。
3.然后将length/2,重复1,2步,直到length=0为止。
public void sheelSort(int[] a){
int d = a.length;
while (d!=0) {
d=d/2;
for (int x = 0; x < d; x++) {//分的组数
for (int i = x + d; i < a.length; i += d) {//组中的元素,从第二个数开始
int j = i - d;//j为有序序列最后一位的位数
int temp = a[i];//要插入的元素
for (; j >= 0 && temp < a[j]; j -= d) {//从后往前遍历。
a[j + d] = a[j];//向后移动d位
}
a[j + d] = temp;
}
}
}
}
参考博客:https://blog.youkuaiyun.com/wcqwcq123/article/details/53425738
本文详细介绍了希尔排序算法,这是一种内部排序方法。通过逐步减小增量,将原始数组分割成多个子序列进行排序,最终实现整个数组的有序化。文章提供了具体的排序思想及其实现的伪代码。

被折叠的 条评论
为什么被折叠?



