1. 程式人生 > 實用技巧 >【Java學習】相關基礎演算法

【Java學習】相關基礎演算法

氣泡排序

原理:比較兩個相鄰的元素,將值大的元素交換至右端,然後在剩下數中比較兩個相鄰的元素,將值大的元素交換到剩下數的右端,直到所有的數排好序。

思路:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完成。

N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重迴圈語句,外層控制迴圈多少趟,內層控制每一趟的迴圈次數。

氣泡排序的優點:每進行一趟排序,就會少比較一次,因為每進行一趟排序都會找出一個較大值。如上例:第一趟比較之後,排在最後的一個數一定是最大的一個數,第二趟排序的時候,只需要比較除了最後一個數以外的其他的數,同樣也能找出一個最大的數排在參與第二趟比較的數後面,第三趟比較的時候,只需要比較除了最後兩個數以外的其他的數,以此類推……也就是說,沒進行一趟比較,每一趟少比較一次,一定程度上減少了演算法的量。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 publicstaticvoidmain(String[] args) { intarray[] = {6,3,8,2,9,1}; for(inti=0;i<array.length;i++) { for(intj=0;j<array.length-1-i;j++) {<br>                 if(array[j] > array[j+1]) { inttemp; temp = array[j+1]; array[j+1] = array[j];
array[j] = temp; } } } for(intx:array){ System.out.println(x); } }

選擇排序

原理:找到一個最小數交換到最前面,然後剩下數中找到最小數交換到剩下數最前面,一直重複此步驟,知道所有數排好