冒泡和選擇,我必須區別你們倆

2022-01-19 14:05:08 字數 1075 閱讀 3332

一直沒怎麼研究排序的東西,去年看了快速排序,相當強大的感覺,而自己一貫說到排序就想起冒泡,可是一寫**起來總是寫成選擇,而我卻一直把它當做是冒泡,真是坑。這次記錄起來,以後就不會忘記了!

排序規則:從小到大

冒泡:就是一組數中,從頭到尾一次前後兩個數順序地比較,一旦發現前數大於後數,立馬交換值。**如下:

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變數是用來累計比較組次的.

選擇排序:就是在整一組裡先以第乙個位置作為起點,讓上面的數跟後面的所有數依次進行比較,其中一旦發現有更小的數,就交換;全部比較完之後就已經把最小值放到了第一位了,然後就是從第二位開始,下面不說了,直接看**:

1

package 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...