一文带你读懂java中的希尔排序-创新互联
这期内容当中小编将会给大家带来有关一文带你读懂java中的希尔排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

希尔排序:通过比较相距一定间隔的元素来工作;各趟比较所用的距离(增量)随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。是插入排序的一种,是针对直接插入排序算法的改进。
算法思想:先将要排序的序列按某个增量d分成若干个子序列,对每个子序列中全部元素分别进行直接插入排序,然后再用一个较小的增量对它进行分组,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。注意:增量的取值——一般的初次取序列的一半为增量,以后每次减半,直到增量为1。
算法实现代码如下:
package exp_sort;
public class ShellSort {
public static void shell(int array[]) {
int j;
int average;
//设置增量的值
for (average = array.length / 2; average > 0; average /= 2) { //步长
for (int i = average; i < array.length; i++) { //子序列进行直接插入排序
int temp = array[i];
for (j = i; j >= average && temp < array[j - average]; j -= average) {
array[j] = array[j - average];
}
array[j] = temp;
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println("\n");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = { 38, 62, 35, 77, 55, 14, 35, 98 };
shell(array);
}
} 当前文章:一文带你读懂java中的希尔排序-创新互联
标题网址:http://www.cqwzjz.cn/article/dhjgcs.html


咨询
建站咨询
