本周我们来学习希尔排序!
希尔排序
先做一个简单的介绍:
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
1,插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;
2,但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;
例如:
定义一个无需数组{5,1,9,10,6,2,3,7,4,8}
对里面进行排序


package 十大排序;
import java.util.Arrays;
public class 希尔排序 {
public static void main(String[] args) {
//定义一个无序数组
int[] arr = {5,1,9,10,6,2,3,7,4,8};
int n = arr.length;
//定义一个gap一次把数据分为几组 然后对每个小组进行排序
int gap = n/2;
//用while循环来进行排序
while(gap > 0){
for(int j = gap; j < n; j++){
int i=j;
while(i >= gap && arr[i-gap] > arr[i]){
int temp = arr[i-gap]+arr[i];
arr[i-gap] = temp-arr[i-gap];
arr[i] = temp-arr[i-gap];
i -= gap;
}
}
gap = gap/2;
}
System.out.println(Arrays.toString(arr));
}
}

本文深入探讨希尔排序算法,一种高效的插入排序改进版。希尔排序通过分组数据并减少比较次数,提高了排序效率。文章详细介绍了希尔排序的工作原理,包括其如何克服传统插入排序的局限性,并提供了具体的代码实现。
2131

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



