10億個浮點數,求出其中最大的10000個

2021-06-08 13:06:23 字數 605 閱讀 5670

#include "stdafx.h"

#include

#include

#include

#include // for greater<>

using namespace std;

int _tmain(int argc, _tchar* argv)

cout << bigs.size() << endl;

make_heap(bigs.begin(),bigs.end(), greater()); // the first one is the smallest one!

float ff;

for (int i = 0; i < 1000000000; i++)

}// sort by ascent

sort_heap(bigs.begin(), bigs.end(), greater()); 

// sort by descent

//sort_heap(bigs.begin(), bigs.end()); 

//sort_heap(bigs.begin(), bigs.end(), less()); 

return 0;

}

10億浮點數求最大的一萬個

這兩天在網上淘到一道筆試題目 注1 雖然真假未知,但的確是道好題,題目如下 從10億個浮點數中找出最大的1萬個。這是一道似易實難的題目,一般同學最容易中的陷阱就是沒有重視這個 億 字。因為有10億個單精度浮點數元素的陣列在32位平台上已經達到3.7gb之巨,在常見計算機平台 如win32 上宣告乙個...

有10億個浮點數,找出一萬個最大的數

給乙個基於最小二叉堆的方案 第一階段,向最小二叉堆中插入前一萬個浮點數 第二階段,從第一萬零乙個浮點數開始,將之與最小二叉堆頂部的最小值比較。如果小於這個最小值,把最小值彈出並將新值插入到二叉堆中。重複此過程直到遍歷完成。建立長度一萬的二叉樹。2.遍歷剩餘的浮點數,若大於最小值則插入二叉樹並刪除最小...

有10億個浮點數,從中找出1萬個最大的數。

給乙個基於最小二叉堆的方案 第一階段,向最小二叉堆中插入前一萬個浮點數 第二階段,從第一萬零乙個浮點數開始,將之與最小二叉堆頂部的最小值比較。如果小於這個最小值,把最小值彈出並將新值插入到二叉堆中。重複此過程直到遍歷完成。建立長度一萬的二叉樹。2.遍歷剩餘的浮點數,若大於最小值則插入二叉樹並刪除最小...