標籤:java [] 運行 java實現 i++ 直接插入排序 print 直接插入 折半插入排序
兩種方法都編譯運行通過,可以當做排序類直接使用。
折半插入排序:
public class Sort1 { public static void main(String[] args) { InsertSort sort = new InsertSort(); sort.InsertSort(); int[] arr = sort.getarr(); System.out.println(); System.out.println("排序之後:"); for (int ar : arr) { System.out.print(ar + " "); } }}class InsertSort { int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 }; int i,high,low,mid; int temp; public int[] getarr() { return a; } public void InsertSort() { System.out.println("排序之前:"); for (int m : a) { System.out.print(m + " "); } for(int i=1;i<a.length;i++) { temp=a[i]; low = 0; high = i-1; while(low<=high) { mid = (low + high)/2; if (temp<a[mid]) { high = mid -1; } else { low = mid +1; } } for(int j=i-1;j>=high+1;j--) { a[j+1] = a[j]; } a[high+1] = temp; } }}
直接插入排序:
public class Sort1 { public static void main(String[] args) { InsertSort sort = new InsertSort(); sort.InsertSort(); int[] arr = sort.getarr(); System.out.println(); System.out.println("排序之後:"); for (int ar : arr) { System.out.print(ar + " "); } }}class InsertSort { int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 }; public int[] getarr() { return a; } public void InsertSort() { System.out.println("排序之前:"); for (int m : a) { System.out.print(m + " "); } for (int i = 1; i < a.length; i++) { int temp = a[i]; int j; for (j = i - 1; j >= 0 && a[j] > temp; j--) { a[j + 1] = a[j]; } a[j + 1] = temp; } }}
兩種插入排序演算法java實現