一直沒怎麼研究排序的東西,去年看了快速排序,相當強大的感覺,而自己一貫說到排序就想起冒泡,可是一寫**起來總是寫成選擇,而我卻一直把它當做是冒泡,真是坑。這次記錄起來,以後就不會忘記了!
排序規則:從小到大
冒泡:就是一組數中,從頭到尾一次前後兩個數順序地比較,一旦發現前數大於後數,立馬交換值。**如下:
package net.dont.sort;/*** 關於氣泡排序
*/public
class testbubble ;
tb.bubblesort(a);
for(int c : a)
}static
void bubblesort(int array)}}
}static
void swap(int array,int i,int j)
}
第乙個for的i變數是用來累計比較組次的.
選擇排序:就是在整一組裡先以第乙個位置作為起點,讓上面的數跟後面的所有數依次進行比較,其中一旦發現有更小的數,就交換;全部比較完之後就已經把最小值放到了第一位了,然後就是從第二位開始,下面不說了,直接看**:
1package net.dont.sort;
2/**
3* 選擇排序4*/
5public
class testselectsort ;
13 ts.selectsort(a);
14for(int c : a)
17 }
1819
static
void selectsort(int array)
26 }
27 }
28 }
2930
static
void swap(int array,int i,int j)
3536 }
這次,第乙個for中的變數i不在是指次數,而是代表第某個數的位置,比如i=0,表示array[i]是要用來裝最小值的。而j是遍歷i後面元素的索引。
比較完畢!
冒泡和選擇排序的區別
冒泡和快速排序的區別在於 冒泡演算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。將待排序的元素看作是豎著排列的 氣泡 較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個 氣泡 序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確...
氣泡排序和選擇排序區別
氣泡排序法 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 分析 第一次比較排序的結果 會把其中最大的資料排到最大的索引處 第二次比較排序後的結果 因為第一次已經把最大的乙個資料放到了最大的索引的地方,所以這次要進行比較的資料比陣列裡面的元素的資料個數 1個,而第二大的資料也會排...
氣泡排序和選擇排序區別
原理上 冒泡是兩兩相鄰的比較,遇到最大的就交換,把最大的沉到後面。選擇排序是假設第乙個為最小,然後不斷和後面的進行比較,遇到更小的就交換位置,把最小的換到前面。author zzk coding utf 8 氣泡排序 data set 9,1,22,31,45,3,6,2,11 for i in r...