冒泡法:(相信大家接觸排序的時候時首先都會接觸這個簡單的排序,但是不瞞大家說本人在接觸的時候總是感覺已經懂了但是過一段時間又忘記了是什麼原理。
所謂冒泡:簡而言之便是先把最大的交換在最後面,然後再重新輪迴,按從大到小的順序乙個乙個的沉下來。
優化思路:設定乙個退出迴圈的條件,如果有乙個未進行排序,則這個陣列已經完成排序。
複雜程度;時間複雜度o(n^2)
空間複雜度o(1)
**實現:
#include
int main()
return 0;}}
}//選擇排序:(這個排序的原理是這樣的,然後那樣,然後那樣,就沒了,哈哈哈不嘴貧了)他是根據從演算法裡每次挑選最小的數放在前面,然後用i這個來對他們進行一一標號。
好了,演算法的基本的三大排序就是這樣的。如果有什麼不對還希望大佬們指出。int main()
}
三大排序演算法
當前結果是從大到小,若想從小到大排序,將a j a j 1 改為 a j a j 1 即可 a 1,4,2,5,22,3 n len a for i in range 1 n for j in range n i if a j a j 1 a j a j 1 a j 1 a j print a 當前...
O n 2 三大排序演算法
一.如何分析乙個排序演算法?1.執行效率 2.記憶體消耗 原地排序演算法,就是特指空間複雜度位o 1 的排序演算法。氣泡排序 插入排序和選擇排序,都是原地排序演算法。3.穩定性 如果待排序的序列中存在值相等的元素,經過排序之後,相等元素之間原有的先後順序不變。二.為什麼學習o n 2 複雜度的排序演...
java中的三大排序演算法
一 氣泡排序 已知一組無序資料a 1 a 2 a n 需將其按公升序排列。首先比較a 1 與a 2 的值,若a 1 大於a 2 則交換兩者的值,否則不變。再比較a 2 與a 3 的值,若a 2 大於a 3 則交換兩者的值,否則不變。再比較a 3 與a 4 依此類推,最後比較a n 1 與a n 的值...