/*
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 ...