question1 2023年11月20日
description:
給一組整數,按照公升序排序,使用選擇排序,氣泡排序,插入排序或者任何 o(n2
) 的排序演算法。
樣例:
對於陣列 [3, 2, 1, 4, 5], 排序後為:[1, 2, 3, 4, 5]。
1.氣泡排序
通俗地說,陣列的每個元素都是個泡泡,數字越大
,就越輕,所以3就會一層一層的往右邊浮動,先和2比,輕一些,把2擠下去,再和1比,輕一些,浮上去,和4比,ok,停住,同時把使命交給4,4繼續上浮,以完成一整個迴圈。下一次就從第二個位置開始。
兩層迴圈,時間複雜度n2
時間複雜度:o(n2
)2.選擇排序
這裡同樣是兩層迴圈,每層迴圈選出乙個剩下的元素中最小的放在陣列的前面,第一次選出1,放在對首,下一迴圈就從隊首後開始,選出2,放在隊首後面,以此類推,關鍵就是每次迴圈要儲存乙個最小值。
時間複雜度:o(n2
)3.插入排序
插入排序的理解,需要兩個陣列,初始陣列是被排序陣列和空陣列,把被排序陣列中的元素乙個個插入空陣列中,插好即排好。每次插入時只要從頭遍歷排好的陣列找到左邊小右邊大的位置插進去就行了。
時間複雜度:o(n2
)總結:
這幾種排序是最好寫的,同時複雜度也是最高的,感覺起乙個引導的效果吧,主要還是後面的複雜度更低的排序演算法。
演算法1 排序
氣泡排序 氣泡排序,比較相鄰的元素由小到大排序 function bubblesort arr return arr view code 快速排序 以基數為標準,最右開始查小於基數停止,最左邊開始查大於基數停止,互換位置停止的位置 left right表示基數左為小於基數,基數右大於基數的 拆分基數...
演算法 排序1 排序
題目 給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給出正整數n 10 5 隨後一行給出n個 長整型範圍內的 整數,其間以空格分隔。在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得...
09 排序1 排序
09 排序1 排序 25 分 給定n 個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 include include includeusing namespace std const int cutoff 1000...