快速排序 分析

2022-05-01 22:39:24 字數 439 閱讀 9403

#includeusing

namespace

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 再對左右...