隨機選擇策略的快速排序

2021-09-30 09:41:03 字數 593 閱讀 9106

/*

subject:計算機演算法設計與分析

title:2.8.2隨機選擇策略的快速排序

coder:hao

class:計科0906

num:0304090614

date: oct 2nd,2011

programming language:c++

*/#include using namespace std;

//實現隨機功能的函式

int random(int p,int r)

//隨機劃分函式

template int randomizedpartition(type a,int p,int r)

//隨機選擇策略的快速排序主功能函式

template void quicksort(type a,int p,int r)

a[p]=a[j];

a[j]=x;

return j;

}//用於實現陣列成員交換的函式

template void swap(type &a,type &b)

void main()

快速排序的改進 隨機快速排序

快速排序是一種高效的排序方法,但是如果我們的輸入陣列是排好序的乙個陣列,快速排序的執行時間就會變成o n 2 雖然這種情況很少會出現,但我們還是應該避免。演算法導論書籍中的修改方法 在排序方法中隨機化選取主元。根據計算,改進後的方法時間複雜度的期望為o nlgn 下面是改進後的 快速排序 publi...

隨機快速排序

問題畫出來小於區域和等於區域,劃偏 1,2,3,4,5,6,7 7 7 總拿最後乙個劃分,跟資料狀況有關,比較差的蛻變程o n 2 6,5,4,3,2,1 1,1 資料分布比較差 比價好的情況 x t n 2t n 2 o n n nlogn 隨機快速排序 隨機選擇乙個數和最後乙個替換一下 長期期望...

快速排序和隨機快速排序

嚴書上的快排是以最左邊元素為樞紐的,如下 include include using namespace std intpartition int a,int left,int right a left p return left void quicksort int a,int left,int ...