數組排序之冒泡排序

排序一直都是一個比較繞的問題,雖然JAVA底層已經給咱們實現的排序算法,但本身理解排序對咱們之後課程的學習也是很是有必要的,下面就讓咱們來看看幾種常見的排序。算法

何爲排序????數組

  簡單來講就是將一組「無序」的記錄序列調整爲「有序」的記錄序列。常見的有:冒泡排序、選擇排序、和插入排序,咱們也就先講講冒泡排序------------工具

冒泡排序:學習

冒泡排序是一種簡單的排序算法,其核心思想就是-----大數下沉、小數上浮spa

看圖:blog

 如此一遍走完,最高個的人將在最後。排序

對應到代碼上就是:for循環

相信到此你也能明白冒泡排序的理論思想了,若是還不理解,你能夠繼續看,或者就關上它吧,等你再學一段時間再來吧!!!!效率

 

好了,理論都介紹完了,該貼代碼了--------------變量

 

 

/**
* 對指定的 int 型數組按數字升序進行冒泡排序
* @param a 待排序的數組
*/
public static void sortBubble(int[] a) {
  int temp;//用於交換的中間變量(建議在這裏定義,不然在for循環裏定義會下降程序效率)
  for (int i = 1; i < a.length; i++) {
    for (int j = 0; j < a.length - i; j++) {
      if (a[j] > a[j+1]) {
        temp = a[j];//三步交換
        a[j] = a[j+1];
        a[j+1] = temp;
      }
    }
  }
}

不要太糾結於代碼,主要仍是要理解這個過程就好

----------------不止這一種寫法,你可能會在其它地方看到其它寫法的,但這個應該是效率最高的了。若是你看到其它更好的寫法,請告訴我

我在創建本身的JAVA工具包,但願作到最優

若是你也在寫本身的工具包,咱們能夠互補一下。謝謝。。。

 

 

 

 

禁止轉載-----必究

張巖

 2017-08-03

相關文章
相關標籤/搜索