在前面我們實現了選擇排序與氣泡排序的具體實現,現在我們從數學的角度分析下演算法的效率問題:
首先我們把兩種排序演算法的概念重溫一遍:
選擇排序:在每一輪中,找出最小的元素放在他最終的位置。挺起來有些彆扭,我們舉個例項:
eg: 8, 5,1, 20, 6, 3
1ed······ 1, 5,8, 20, 6, 3
2ed······ 1, 3, 8,20, 6,5
3ed······ 1, 3,5, 20, 6,8
4ed······ 1, 3, 5, 6, 20,8
5ed······ 1, 3, 5, 6, 8,20
這樣一看應該就比較清楚了,那麼在每次迴圈中比較是主要的操作,所以我們就把比較作為該演算法分析的乙個點,接下來我們從數學的角度分析:
在演算法分析中有幾個重要的公式:
在選擇排序中:
for(i=0;i--->n-1)
}
博主勵志:
你無法改變的事情,就請默默的接受吧,否則傷心,傷腦,傷身...
演算法的效率(氣泡排序 選擇排序 快排)
演算法的效率可以用 時間複雜度o n 來度量。時間複雜度反應了程式執行時間隨輸入規模增長而增長的量級,很大程度上能反應演算法的優略程度。我們最開始認識的排序方法有氣泡排序和選擇排序但是這個演算法的效率怎麼樣呢,讓我們來測試一下。首先,我們隨機生成乙個長度為100000的隨機數組,並選用選擇排序的方法...
冒泡演算法與選擇排序
冒泡演算法 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一次 首先比較第1個和第2個數,將小數放前,大數 放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一次結束,將最大的數放到了最後。在第二次 仍從第一對數開始比較 因...
氣泡排序與選擇排序的區別分析
氣泡排序與選擇排序很類似,有些初學者不注意很容易將兩者混淆,因此想寫一篇部落格,詳解兩種排序演算法的區別。第1輪排序 首先進行第1輪排序,黃色代表當前比較的元素,綠色代表已經歸位的元素。1 比較第1個和第2個元素,4 3,交換。2 比較第2個和第3個元素,1 3,不交換。3 比較第3個和第4個元素,...