九章算法大廠常考分布式RPC服務(wù)框架精講
快速排序算法
算法實(shí)現(xiàn)思想:
1、設(shè)置兩個(gè)變量i、j,排序開始的時(shí)候:i=0,j=N-1;
2、以第一個(gè)數(shù)組元素作為關(guān)鍵數(shù)據(jù),賦值給key,即key=A[0];
3、從j開始向前搜索,即由后開始向前搜索(j--),找到第一個(gè)小于key的值A(chǔ)[j],將A[j]和A[i]互換;
4、從i開始向后搜索,即由前開始向后搜索(i++),找到第一個(gè)大于key的A[i],將A[i]和A[j]互換;
5、重復(fù)第3、4步,直到i=j; (3,4步中,沒找到符合條件的值,即3中A[j]不小于key,4中A[i]不大于key的時(shí)候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,進(jìn)行交換的時(shí)候i, j指針位置不變。另外,i==j這一過程一定正好是i+或j-完成的時(shí)候,此時(shí)令循環(huán)結(jié)束)。時(shí)間復(fù)雜度:max = O(n^2) 、 average = O(n*log2n);
算法穩(wěn)定性:不穩(wěn)定;
算法實(shí)現(xiàn) (升序排序)
C語言實(shí)現(xiàn):
標(biāo)簽: