1 public class Test { 2 3 public static void main(String[] args) { 4 int A[] = {9,1,6,2,8,4,5,2,0}; 5 insertSorted(A); 6 for (int i = 0; i < A.length; i++) { 7 System.out.print(A[i] + " "); 8 } 9 System.out.println(); 10 } 11 12 /** 13 * 不变形 14 * @param A 15 */ 16 private static void insertSorted(int A[]) { 17 for (int i = 1; i < A.length; i ++) { 18 int data = A[i]; 19 int j = i - 1; 20 while (j >= 0 && A[j] > data) { 21 A[j + 1] = A[j]; 22 j --; 23 } 24 A[j + 1] = data; 25 } 26 } 27 28 /** 29 * 交换O(n),比较O(n^2),不变形 30 * @param A 31 */ 32 private static void swapSorted(int A[]) { 33 for (int i = 0; i < A.length - 1; i++) { 34 int min = i; 35 for (int j = i + 1; j < A.length; j++) { 36 if (A[min] > A[j]) { 37 min = j; 38 } 39 } 40 if (min != i) { 41 swap(A, i, min); 42 } 43 } 44 } 45 46 /** 47 * 交换O(n^2),比较O(n^2),不变形 48 * @param A 49 */ 50 private static void bubbleSorted(int A[]) { 51 boolean flag = true; 52 for (int i = 0; i < A.length - 1 && flag; i++) { 53 flag = false; 54 for (int j = 0; j < A.length - i - 1; j++) { 55 if (A[j] > A[j + 1]) { 56 swap(A, j, j + 1); 57 flag = true; 58 } 59 } 60 } 61 } 62 private static void swap(int A[], int i, int j) { 63 int temp = A[i]; 64 A[i] = A[j]; 65 A[j] = temp; 66 } 67 }