冒泡排序、选择排序和插入排序实例

 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 }

 

posted @ 2018-02-05 14:21  菲儿飞飞  Views(180)  Comments(0Edit  收藏  举报