java 氣泡排序和選擇排序的分析

2021-07-22 16:46:04 字數 1138 閱讀 1859

兩種排序方式

現在介紹兩種著名的排序方式:

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