用QuickSort快速查詢中位數 median

2022-09-16 19:39:16 字數 544 閱讀 9568

中位數(median)是乙個排好序的元素中中間位置的元素,如果元素個數為偶數,則是中間兩個元素的平均值。例如(3,1,5)的中位數是3,而

(2,1,3,5)的中位數是2.5。查詢中位數屬於selection

algorithms的一種。用快速排序可以做到每次divide之後,只需要conquer乙個分支,時間複雜度為o(nlogn)。

為便於比較,以下**包含quicksort的演算法實現:

public static float findmedianbyquicksort(int a,int left,int right)else

}elseelse if(rightcnt > leftcnt)else

}}

public static void quicksort(int a,int left,int right)

private static int sortpivot(int a,int left,int right)

}

for(;rp>=left+1;rp--){

if(a[rp]

快速查詢演算法

在日常的演算法中,查詢是乙個經常涉及到的話題,而如何提高查詢的速度,也是很多程式設計師 軟體研究的話題。先看乙個例子。有這樣乙個資料型別s 學生姓名 name 性別 年齡 age 現在假設有這樣乙個需求 檔案a b中分別存放大量s 的記錄,需要將a b中重複的記錄去掉。我們用c 來演示今天的話題 t...

快速查詢素數

題目 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸入 5...

快速查詢素數

快速查詢素數 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸...