希尔排序
算法分析:
希尔排序的算法原理类似于插入排序,但是它减少了数据移动的次数,排序的原则是将数据划分成特定间隔的几个子集,以插入算法完成子集内数据的排序,后逐渐减少间隔的距离
假设存放待排数据的数组长度为n,开始的特定间隔取n/2,而后逐渐减少为n/4,n/8...直到间隔为0,停止
代码实现
import java.util.Scanner;
public class shellSort {
Scanner in = new Scanner(System.in);
public shellSort() {
System.out.println("输入数组的长度:");
int size = in.nextInt();
int[] a = new int[size];
input(a, size);
shell(a, size); // 希尔排序
pint(a, size);
}
public void input(int[] a, int n) {
System.out.println("输入待排数据");
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
}
public void pint(int[] a, int n) {
for (int i : a) {
System.out.print(i + " ");
}
}
public v