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 }