冒泡排序:例如9 4 5 6 8 3 2 7 10 1?
首先:9和4比較? 4放前?? 4 9 5 6 8 3 2 7 10 1?
????? 4和5比較?? 4不動?? 4 9 5 6 8 3 2 7 10 1?
????? 4和6比較??? 4不動?? 4 9 5 6 8 3 2 7 10 1?
????? 4和3比較??? 3放前?? 3 9 5 6 8 4 2 7 10 1?
????? 3和2比較??? 2放前?? 2 9 5 6 8 4 3 7 10 1
最后第一輪為:1?9 5 6 8 4 3 7 10?2??? 通過第一輪最小的數放到了第一個
平均時間復雜度:o(n平方);
最大時間復雜度:o(n平方)
最小時間復雜度:o(n)
穩定性:穩定???? a在b前面 當a=b時 仍然在前面
?
快速排序:
?
例如:10? 5? 81? 54? 6? 14? 76? 13
設置i 和 j 分別指向 10 和13
?
首先 j從后往前找比10小的數 找到6 并交換 10和6的位置
得到: 6 5 81 54 10 14 76 13
?現在將i往后移一位 i=5? j=10;
讓i從前往后找比10大的數? 找到81 交換81和10的位置,得
?6 5 10 54 81 14 76 13
現在i=10? j=81;
讓j從后往前找比10小的數? 找不到
?
故第一輪排序為:6 5 10 54 81 14 76 13?? 通過第一輪:比10大的數在右邊,比10小的數全在左邊
?
平均時間復雜度:o(nlogn);
最大時間復雜度:o(n平方)
最小時間復雜度:o(nlogn)
穩定性:不穩定