氣泡排序:
#include
using
namespace std;
intmain()
for(
int i=
0;i1;i++)}
}for
(int i=
0;i)return0;
}
氣泡排序: 穩定的排序方法
平均情況:o(n^2)
最好情況:o(n)
最壞情況:o(n^2)
輔助空間:o(1)
快速排序(分治法的應用)(不穩定的排序演算法)
核心思想:
通過一次劃分找到兩指標碰頭的位置,以此為界,將元素分成兩部分,左邊全為小於邊界值的,右邊全為大於邊界值的,遞迴的劃分左右兩部分便可將元素排序。
劃分方法:(以公升序排為例)
設定兩指標分別指向陣列元素開頭和結尾位置,比較兩元素的大小。
左小右大:尾指標左移,繼續比較大小
左大右小:手指標右移,繼續比較大小
直到兩指標碰頭為止
快速排序:
平均情況:o(nlogn)
最好情況:o(nlogn)
最壞情況:o(n^2)
輔助空間:o(logn)—o(n) 需用棧實現遞迴
氣泡排序,快速排序
氣泡排序 氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。...
氣泡排序 快速排序
一 氣泡排序 演算法步驟 以n個數排序,從小到大排為例說明。1 待排序數中,從第1個數開始,每個數與它後面的數比較,若逆序則交換。完成後則最大數排到最後,待排序數個數減少乙個。2 若待排序數個數為1,則它就是最小數,排在首位。否則,回到第 1 步。具體講解如下 第一趟 第1 2個數比較,若逆序則交換...
氣泡排序,快速排序
實現思路 每次從陣列裡面選出乙個最大值,一直遞迴 它的最優時間複雜度為o n 正序,陣列排好情況下 最糟糕時間複雜度為o n 2 反序 陣列排序剛好相反 function bubblesort arr return arr 返回最終結果 arrtest 12,43,54,33,23,14,44,53...