兩種排序方式
現在介紹兩種著名的排序方式:
1, 氣泡排序:相鄰元素進行比較,較大的往右邊移動:結果就是每一次排序,最大的都會移動到右邊。最後結果就是公升序的序列。
如:3,4,2,6,7
第一輪:1,3<4 不變 3,4,2,6,7
2,4>2 交換位置 3,2,4,6,7
3,4<6 不變 3,2,4,6,7
4,6<7 不變 3,2,4,6,7
第二輪:1,3>2 交換位置 2,3,4,6,7
2,3<4 不變
3. 4<6 不變
.。。。
轉換成一般性規律,每一輪比較最大值就會移動到最右邊來,一共會比較個數-1次。
用**實現的話:
for(inti=0;i
外層的i迴圈表示的迴圈次數,內迴圈表示每一輪迴圈的狀況,變化在於j
2,選擇排序:有乙個陣列a[i]的話,選擇排序就是a[0]和後面的元素依次比較,接著a[1]和後面的元素一次比較
例:a=
第一輪:1,7>3,交換,3,7,2,8,6,4
2, 3>2,交換,2,7,3,8,6,4
3,3<8,3<6,3<4後面三步都是小於,所以不變。
第一輪結果:2,7,3,8,6,4
第二輪:1,7>3,交換,2,3,7,8,6,4
2,3<7,3<8,3<6,3<4.後面四部都是小於,所以不變
第二輪結果:2,3,7,8,6,4
第三輪:1,7<8 不變
2,7>6,交換,2,3,6,8,7,4
3,6>4,交換,2,3,4,8,7,6
第四輪1,8>7,交換,2,3,4,7,8,6
2,7>6,交換,2,3,4,6,8,7
第五輪1,8>7,交換,2,3,4,6,7,8
上述過程,說明選擇排序,每一輪都是把最小值選出放在左邊,經過元素個數-1論比較。
原始碼:for(inti=0;i
外層迴圈i,是表示迴圈的次數,記憶體是比較的邏輯,需要注意的是:初始值j=i+1,是因為,在一輪比較中a[i]是固定不變的,只需要下標i比較後面的值,而限定條件j
Java 氣泡排序和選擇排序
b 氣泡排序 b 氣泡排序比較好理解,但是效率比較低,氣泡排序的基本思想是 每一次將最具有特徵的乙個數 或者object 放到序列的最前面,或者最後面。例如,如果需要將一組數,以從小到大的順序排列,那麼就可以設計這樣的冒泡方法 可以設計從序列的最後面開始,找出序列中最小的乙個數放到序列的最前面,這樣...
java的陣列排序(氣泡排序和選擇排序)
1.選擇排序 宣告陣列 int arr new int 外層迴圈控制對比多少輪 for int i 0 i arr.length i 選擇排序 即 每次乙個元素和後面所有的元素進行逐個對比,每次取出其中最大或最小 根據公升序降序決定 的放到前面 如 第一次用第乙個元素和後面的所有元素對比,取出最大的...
java氣泡排序和選擇排序法
需求 定義乙個函式接收乙個int型別的陣列物件,把陣列中的最大值放在陣列中的第一位。選擇排序 直接排序 使用乙個元素與其他 的元素挨個比較一次,符合條件交換位置。class demo9 對於5元素的陣列,只需要找出4個最大值就可以排序了。selectsort arr public static vo...