java中數組的排序,直接排序,冒泡排序,插入排序


1、直接排序:  

public static void selectSort(int[] arr) {
        for (int x = 0; x < arr.length - 1; x++) {
            for (int y = x + 1; y < arr.length; y++) {
                if (arr[x] > arr[y]) {
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
    }

 

說明:雙重for循環,數組的第一個數a[0]和后面所有的數進行比對,得到最小的數,然后第二個數a[1]和后面所有的數進行比對,得到次小的數。。。反復后得到排序后的結果。

2、冒泡排序

  (1)、

 1 public static void bubbleSort(int[] arr) {
 2 
 3          for(int x=0; x<arr.length-1; x++) {
 4 
 5              for(int y=0; y<arr.length-x-1; y++) {
 6 
 7                 if(arr[y]>arr[y+1]){
 8 
 9                     int temp = arr[y];
10 
11                     arr[y] = arr[y+1];
12 
13                     arr[y+1] = temp;
14 
15                 }
16 
17              }
18 
19          }
20 
21   }

  (2)、

 1 public static void sort(int[] a) {
 2     int temp = 0;
 3     for (int i = a.length - 1; i > 0; --i){
 4       for (int j = 0; j < i; ++j){
 5         if (a[j + 1] < a[j]){
 6           temp = a[j];
 7           a[j] = a[j + 1];
 8           a[j + 1] = temp;
 9         }
10       }
11     }
12   }

說明:冒泡排序是兩兩之間進行對比,   如:4.2.5.1.7   :第一次內循環、4和2比-->2,4 、4和5比-->4,5、5和1比-->5,1、5和7比-->5,7。

  這樣最大的一個數就到了數組的最后,第二次進行比對的時候只要比數組長度-2次,就是<arr.length-1,即可得到次大的數,放在倒數第二的位置,如此反復得到排序后的數組。

3、插入排序:

public static void insertSort(int[] a) {
        for (int i = 1; i < a.length; i++) {
            for (int j = i; j > 0; j--) {
                if (a[j] < a[j - 1]) {
                    int temp = a[j - 1];
                    a[j - 1] = a[j];
                    a[j] = temp;
                }else break;
            }
        }
    }

說明:插入排序和打牌一樣,拿到一個數和前面已有的數進行對比,比前面的數小就放到前面,舉例:4,2,5,1,7 :  

  第一次內循環、拿到數a[1]=2,和a[0]=4進行對比,2小,換位置;

  第二次內循環、拿到數5,和4比,位置不變,if判斷為false,則break,跳出內循環,進行下一次;

  第三次內循環、拿到數1,和5比,交換位置,1在和4比,交換位置,最后和2比,再次交換位置,得到結果,1,2,4,5,7;

  ...

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM