設計乙個高效演算法,算出隨機數組裡的中位數

2021-10-06 18:06:04 字數 506 閱讀 2162

解題思路:

1、通過最大堆、最小堆來實現實時中位數的獲取。

2、最大堆中存放比最小堆小的元素。

3、如果最大堆的對頭元素大於最小堆,則進行交換。

4、偶數下標的元素存入最小堆,奇數下標的元素存入最大堆

public class median

};// 最大堆

priorityqueuemaxheap = new priorityqueue(n, comparator);

// 最小堆

priorityqueueminheap = new priorityqueue(n);

for (int i = 0; i < n; i++) else

//獲取頭元素

res[i] = minheap.peek();

} else else

res[i] = maxheap.peek();}}

return res;

}}

關於生成乙個隨機數組

生成隨機數的最基本 是 random rand new random int i rand.next 0,100 next函式的引數可以為空,也可以是乙個值的範圍。像這種方法通常生成乙個隨機數不會有問題,但是如果要生成乙個隨機數組的話就不見得好用了,比如 listlstrnd new list ra...

關於生成乙個隨機數組

生成隨機數的最基本 是 random rand new random int i rand.next 0,100 next函式的引數可以為空,也可以是乙個值的範圍。像這種方法通常生成乙個隨機數不會有問題,但是如果要生成乙個隨機數組的話就不見得好用了,比如 listlstrnd new list ra...

PHP高效生成乙個不重複隨機數

array unique rand int min,int max,int num 生成一定數量的不重複隨機數 min 和 max 指定隨機數的範圍 num 指定生成數量 function unique rand min max num 為陣列賦予新的鍵名 shuffle return return...