編程珠璣《Programming Pearls》---再不讀經(jīng)典就鞋材了

編程珠璣《Programming Pearls》---再不讀經(jīng)典就鞋材了

閱讀計劃

這本書的前言已經(jīng)叮囑了,對于這本書讀起來要
盡量的慢,讀精讀頭才可以。這也正好符合我懶的作風(fēng)。
正好,[慢慢磨這本書,計劃在一個月內(nèi)讀完。]
因為是在圖書館借的,目前我有個計劃是在畢業(yè)之前
把圖書館的經(jīng)典書籍都看完,不論是技術(shù)類還是什么,
而且做好筆記,筆記不做也要做好書單的記錄。
let us do IT! 不用點英語沒有逼格,下面這本書簡稱Pears,
具體原因是linux下的輸入法很難用,珠璣很難打。

第一章

關(guān)于排序的反思

一直在學(xué)習(xí)排序,基本的排序比如二叉樹,堆,歸并,塊排,
大都了解,但排序的哲學(xué)在于當齊面對上G大小的數(shù)據(jù)時的性能如何,
對于我們初學(xué)者來說,我們重點方錯了位置,我們以為會用排序
排一個10個數(shù)字的數(shù)組就算完成了,其實更加需要注意的是如何在大數(shù)據(jù)的面前利用排序算法更加有效的進行大數(shù)的排序,所以1G的數(shù)據(jù)如何生成也是我們需要研究的。

如何生成1G的數(shù)據(jù)?

    1.隨機生成一個文件。
    2.在網(wǎng)上down一個二進制文件

Pears的第一個問題描述

如何給磁盤文件排序?

    輸入:一個最多包含n個正整數(shù)的文件,每個數(shù)都小于n,
    其中n = 10^7。如果在輸入文件中有任何整數(shù)重復(fù)出現(xiàn)就是致命錯誤。
    輸出:按排序排列的輸入整數(shù)的列表。
    約束:最多有(大約)1MB的內(nèi)存空間可用,有充足的磁盤存儲空間可用。運行時間最多
    幾分鐘,運行時間為10s就不需要進一步優(yōu)化了。

利用位圖排序

    書中提到了利用歸并去實現(xiàn)。
    但歸并的缺點在于需要輔助內(nèi)存的不斷讀出寫入,所以數(shù)據(jù)大了之后效率會下降。

可以采用位圖來做。

代碼#include<回來寫,打球去了>
#include <iostream>     // std::cout
#include <algorithm>    // std::for_each
#include <vector>       // std::vector
using namespace std;

void fun(int i){
    cout << i << ' ';
}

int main(int argc, char const *argv[])
{
    //
    int i{};
    int bit[10];
    for(i = 0;i < 10;++i){
        bit[i] = 0;
    }
    bit[0] = 0;
    bit[2] = 1;
    bit[3] = 1;
    bit[4] = 1;
    bit[6] = 1;
    bit[7] = 1;

    // for_each(bit,bit+10,fun);
    for(i = 0;i < 10;++i){
        if(bit[i] == 1){
            cout << i << ' ';
        }
    }

    cout << endl;
    return 0;
}   

root@fangzhenhua-Lenovo-G510:/home/kevin/ProgrammingPearls# ./a.out
2 3 4 6 7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,138評論 25 708
  • 本文把程序員所需掌握的關(guān)鍵知識總結(jié)為三大類19個關(guān)鍵概念,然后給出了掌握每個關(guān)鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,387評論 6 244
  • 第一部分、十道海量數(shù)據(jù)處理面試題 1、海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個IP。 此題,在我之前的一篇文...
    零一間閱讀 1,018評論 0 5
  • 摘要:本文將向您講述諸多數(shù)據(jù)處理面試題以及方法的總結(jié)。 第一部分、十道海量數(shù)據(jù)處理面試題 1、海量日志數(shù)據(jù),提取出...
    拾壹北閱讀 1,786評論 0 28
  • 他的女朋友在商場試衣服試了很久,他不時的站起來又坐下,來回走動,女朋友問他衣服怎么樣,他敷衍的說 都挺好??梢钥闯?..
    嘰嘰咕咕lu閱讀 239評論 0 0

友情鏈接更多精彩內(nèi)容