期望線性時間選擇

2021-05-25 19:12:44 字數 516 閱讀 8448

在乙個由n個元素組成的集合裡,第i個順序統計量(order statistic)是該集合中第i 小的元素。比如:在一組元素的集合中,最小值是第1個順序統計量(i =1),而最大值是第n個順序統計量(i=n)。

code:

#include 

#include 

#include 

void swap(int *a, int *b)  

int random_partition(int a, int p, int r)  

}  swap(&a[p], &a[i]);  

return i;  

}  int find_ith(int a, int p, int r, int i)  

main()  

;  int size = sizeof(a) / sizeof(int);  

int num = find_ith(a, 0, size, 3);  

printf("%d", num);  

}  

期望為線性時間選擇演算法

一般選擇問題看起來要比我麼找最小值這樣的簡單問題更難。但這兩個問題的漸進執行時間卻是相同的 n randomized select演算法,以快速排序演算法為模型。與快速排序不同的是,快速排序會遞迴處理劃分的兩邊,而randomized select只處理劃分的一邊。快速排序執行的時間是 n n 而r...

線性期望時間選擇問題C語言

直接上 include define size 20 int main void int select int const array,const int left,const int right,const int ith int partition int const array,const i...

期望為線性時間的選擇演算法

演算法導論 第9章randomized select演算法 從乙個陣列當中尋找第i小的元素,最簡單最暴力的方法就是將整個陣列按照公升序進行排序操作,那麼第i個元素就是第i小的元素。如果是以這種方式,那麼時間複雜度等同於排序時所使用的排序演算法,如果是快速排序,那麼此時時間複雜度為o nlgn 那麼,...