10 冒泡排序

10 冒泡排序

思路分析:

  核心思想爲:
  使數組的當前部分(初始時爲原數組)的最後一個值爲最大值(升序)爲或最小值(降序)

  使最後一個值爲最大值的具體操作爲(升序):在數組的當前部分裏面每次(從第一個開始)都拿前面一個與後面相相比較,若比後面的值大,就交換,直到前面一個數訪問當前數組的倒數第二個元素爲止,

  使最後一個值爲最小值的具體操作爲(降序):在數組的當前部分裏面每次(從第一個開始)都拿前面一個與後面相相比較,若比後面的值小就交換,直到前面一個數訪問當前數組的倒數第二個元素爲止,

推導過程如下所示:

int[] a={1,2,3,4,5};以a數組爲例,可以得到如下所示的表(以降序爲例)

準備工作

  //bubble sort的意思是冒泡排序
        int[] a={9,8,7,6,5,4};
//      int[] a={1,2,3,4,5,6};
//      int[] a={1,4,121,4,5,6};
        System.out.println("需要排序的原數組a如下所示:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+"\t");
        }
        System.out.println();//換行

A.升序

1.核心代碼

  //升序
        for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i; j++) {
                if(a[j]>=a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
        System.out.println("排序後的數組a(升序)如下所示");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+"\t");
        }

2.運行截圖

B.降序

1.核心代碼:

         //降序
        for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i; j++) {
                if(a[j]<=a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
        System.out.println("排序後的數組a(降序)如下所示");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+"\t");
        }

2.運行截圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章