描述n個資料的氣泡排序演算法,時間複雜度是多少

2021-08-31 11:15:27 字數 948 閱讀 9772

氣泡排序的演算法時間複雜度上o(n^2 )

氣泡排序是這樣實現的:

首先將所有待排序的數字放入工作列表中。

重複2號步驟,直至再也不能交換。

氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容易實現的演算法。

選擇排序

選擇排序是這樣實現的:

設陣列內存放了n個待排數字,陣列下標從1開始,到n結束。

i=1

從陣列的第i個元素開始到第n個元素,尋找最小的元素。

將上一步找到的最小元素和第i位元素交換。

如果i=n-1演算法結束,否則回到第3步

選擇排序的平均時間複雜度也是o(n^2)的。

1.穩定性比較

插入排序、氣泡排序、二叉樹排序、二路歸併排序及其他線形排序是穩定的

選擇排序、希爾排序、快速排序、堆排序是不穩定的

2.時間複雜性比較

插入排序、氣泡排序、選擇排序的時間複雜性為o(n2)

其它非線形排序的時間複雜性為o(nlog2n)

線形排序的時間複雜性為o(n);

3.輔助空間的比較

線形排序、二路歸併排序的輔助空間為o(n),其它排序的輔助空間為o(1);

4.其它比較

插入、氣泡排序的速度較慢,但參加排序的序列區域性或整體有序時,這種排序能達到較快的速度。

反而在這種情況下,快速排序反而慢了。

當n較小時,對穩定性不作要求時宜用選擇排序,對穩定性有要求時宜用插入或氣泡排序。

若待排序的記錄的關鍵字在乙個明顯有限範圍內時,且空間允許是用桶排序。

當n較大時,關鍵字元素比較隨機,對穩定性沒要求宜用快速排序。

當n較大時,關鍵字元素可能出現本身是有序的,對穩定性有要求時,空間允許的情況下。

宜用歸併排序。

當n較大時,關鍵字元素可能出現本身是有序的,對穩定性沒有要求時宜用堆排序。

簡明演算法 氣泡排序 javascript描述

懶惰了很久,人有點生鏽,所以寫個演算法系列讓自己腦筋活躍起來。所有範例一律從小到大排序 氣泡排序 給定陣列 var list 54,26,93,17,77,31,44,88,55,20 演算法描述 將第乙個元素與第二個元素對比,此時第乙個元素比第二個元素大,交換他們,這樣較大的元素就位於第二個位置了...

n個數的排序

n個數的排序 time limit 1000ms memory limit 65536kb problem description leiq當上了體育委員,現在老師讓他去給班級裡的人排隊,leiq剛學了排序,所以他想以這種方式給班級裡的人排隊 從矮到高 他想知道排序完成後的結果。input 多組輸入...

n個數的排序

problem description leiq當上了體育委員,現在老師讓他去給班級裡的人排隊,leiq剛學了排序,所以他想以這種方式給班級裡的人排隊 從矮到高 他想知道排序完成後的結果。input 多組輸入,每組的第一行是乙個正數n 1 n 100 第二行是n個數,表示每乙個人的高度。output...