氣泡排序公升序降序

2021-09-12 22:21:32 字數 1260 閱讀 2700

氣泡排序  時間複雜度 o(n2)

實 質: 把小(大)的元素往前(後)調

氣泡排序演算法的原理如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

演算法穩定性:

氣泡排序就是把小的元素往前調或者把大的元素往後調。

比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。

所以,如果兩個元素相等,是不會再交換的;

如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,

這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法。

public class bubblesort}}

//這一版**做了小小的改動,利用布林變數issorted作為標記。

如果在本輪排序中,元 素有交換,則說明數列無序;

如果沒有元素交換,說明數列已然有序,直接跳出大迴圈。

for (int i = 0; i array[j+1])

}if (issorted)

}這一版**中,sortborder就是無序數列的邊界。每一輪排序過程中,

sortborder之後的元素就完全不需要比較了,肯定是有序的

int tmp = 0;

//記錄最後一次交換的位置

int lastexchangeindex = 0;

//無序數列的邊界,每次比較只需要比到這裡為止

int sortborder = array.length - 1;

for (int i = 0; i < array.length; i++)

}sortborder = lastexchangeindex;

if (issorted) }}

}public class test ;

//降序

bubblesort.budesc(array);

system.out.println(arrays.tostring(array));

//公升序

// bubblesort.busort(array);

// system.out.println(arrays.tostring(array));

}}

std sort 公升序 ? 降序

std sort 這個函式,大家知道用,而且入可以 使用乙個自定義的元素對比函式。比較鬱悶的是,老是忘了 這個函式返回 true 對排序結果的影響 公升序還是降序 於是用gtest 寫了一段 測試 將就些看吧 class handhogrecord chips type bet boolorderb...

C sort 排序(降序 公升序)使用總結

c sort 函式十分方便,可以對內建型別也可對自定義型別進行快速排序,內建型別的使用比較簡單,下面主要討論自定義型別的排序,一般有如下幾種使用方法 比如,我們現有一批學生,要根據他們的成績進行公升序排序,成績如果相等則根據名字公升序排序,那麼我們可以如下操作 struct student bool...

排序箭頭,公升序,降序簡單實現

css不好實現的效果,通過背景來彌補。預設 銷量新品 效果有了,剩下的就是通過js邏輯和程式邏輯來實現排序了。html改造 預設 sortedascsorteddescsorted data type sale role columnheader tabindex 0 aria controls s...