#includeusingnamespace
std;
void quik_sort(int a,int l,int
r) a[i]=k;
quik_sort(a,i+1
,r);
quik_sort(a,l,i);
}}int
main()
**分析:
將乙個陣列按其中某值分開兩邊的演算法:
一從左到右記入第乙個小於key的值交換到第乙個
二從又到左找到第乙個大於key的值放到上一步空下的位置
三重複執行一 ,二步 直到全部排完
由上訴知總會空下乙個空沒填 所以記錄第乙個空出來的到最後結束時補上
時間複雜度分析:
每一層都遍歷n;所以時間複雜度為 樹的深度*n =n*logn;
快速排序分析
1.開篇 終於還是忍不住要學習一下演算法啦,該面對的還是要面對,不能逃避,不能把已經會的技能忘掉,那是一種對生命的摧殘和不仁。不要怕,只要每天都在進步,水滴石穿,終有破雲見天日的時刻。感慨寫完了,回到正題,分析快速排序。2.原理 假設要排序的陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣...
快速排序分析
首先簡單描述一下快速排序 1.快速排序樹不穩定的 由於關鍵字的比較與交換是跳躍進行的 2.時間複雜度為o n logn 最好情況為n logn 若陣列基本有序為n n 3.空間複雜度為logn 主要是遞迴造成的棧空間的使用,最好情況,遞迴樹的深度為log2n,其空間複雜度也就為o logn 最壞情況...
快速排序分析
一直想研究一下快速排序,今天剛好有空,寫一下自己對快速排序的認識。快速排序由於排序效率在同為o n logn 的幾種排序方法中效率較高,因此經常被採用。該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右...