希尔排序——java实现

来源:互联网 发布:直播gv的软件 编辑:程序博客网 时间:2024/05/23 13:00
public class ShellSort {private int[] a;public ShellSort(int[] a){this.a = a;}public int[] getA() {return a;}public void shellSort(){for(int d = a.length/2;d>0;d/= 2){for(int i = 0;i<a.length-d;i++){if(a[i]>=a[i+d])swap(i,i+d);for(int j = i;j>=d;j = j-d){if(a[j]<=a[j-d])    swap(j,j-d);}}}}public void swap(int i, int j) {          if (i == j) {              return;          }          a[i] = a[i] + a[j];          a[j] = a[i] - a[j];          a[i] = a[i] - a[j];      } public static void main(String[] args) {Random random = new Random();int[] ssData = new int[12];String beforeSort = "";String afterSort = "";for(int i=0;i<ssData.length;i++){ //随机生成排序数Integer a =random.nextInt(100);ssData[i]= a;beforeSort = beforeSort + ssData[i] + " ";}System.out.println(beforeSort);ShellSort ss = new ShellSort(ssData);    ss.shellSort();ssData = ss.getA();for(int i=0;i<ssData.length;i++){afterSort = afterSort + ssData[i] + " ";}System.out.println(afterSort);}}

0 0
原创粉丝点击