日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

海量数据排序问题一一 100G 数据,只有 100M 内存,怎么排序?

發布時間:2023/12/31 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 海量数据排序问题一一 100G 数据,只有 100M 内存,怎么排序? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

100G 數據,按照 100M 內存拆分,然后排序有序的數據,然后寫入到 file1,file2…file100。?


多路歸并

第一回合:?

從 file1,file2,file3……file100.取出第一個數。及最小的。所有的初始指針都是第一行。?
min1=min(min1=min(fil1,file2,file3…..file100);file2,file3…..file100);min1 寫入到大數據文件。大數據行數指針+1。min1對應的行數指針+1。

第二回合:

從file1,file2,file3……file100.取出第一個數。及最小的。所有的初始指針都是第一行。min2 = min(fil1,fil1,file2,file3…..file100);?min2寫入到大數據文件。大數據行數指針+1。min2寫入到大數據文件。大數據行數指針+1。min2 對應的行數指針+1。

多路歸并排序:

function mergeMultiArray($arr) {//初始化參賽 PK 的數據40foreach($arr as $key => $items){//初始化每個參賽的第一個元素$idx[$key] = 0;}$retArr = array();$retIdx = 0;while(false == empty($arr)){$min = null;//最小值$minKey = null;//最小值得代表隊編號foreach($arr as $key => $items){$tmpIdx = $idx[$key];//參賽代表對當前指針$tmpMin = $items[$tmpIdx];//參賽代表對的值$tmpKey = $key;//參賽代表對的編號if(null == $min || $tmpMin < $min){$min = $tmpMin;$minKey = $key;}}//寫入結果$retArr[$retIdx] = $min;$retIdx++;//或者隊伍的指針+1$idx[$minKey]++;//參賽代表隊,隊員已經用完了if($idx[$minKey] >= count($arr[$minKey])){unset($arr[$minKey]);}}return $retArr; } $ret = mergeMultiArray(array(array(1,10,100),array(2,30,70),array(4,6,9))); print_r($ret);

?

總結

以上是生活随笔為你收集整理的海量数据排序问题一一 100G 数据,只有 100M 内存,怎么排序?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。