排序一直都是一個比較繞的問題,雖然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