第一篇:海量總結
2011——2012學年第一學期
“海量閱讀”實驗小結
開展海量閱讀實驗已近一個學期,這一個學期以來,我立足學生的實際,關注課內外延伸,努力在各類活動中開展了此項實驗,取得了初步的成效。我主要做了以下幾個方面的工作:
一、整合課本資源,拓寬閱讀渠道
在文本的處理上,整合教學資源。課文的教學注重學生自主學習能力的培養,依托小組合作的形式,提高了課堂的效率。對于文本的處理改變了以往的教學模式,通過教學方式的變革來實現學習方式的轉變,由“要我學”變成“我要學”。課堂上,充分相信孩子們的能力,大膽放手,嘗試著讓孩子先學。但其中方法的指導尤為重要,過多的分析、講解不會給孩子留下太多有用的價值。像《牛郎織女》這種比較好讀、淺顯易懂的課文,我就降低訓練的重點,沒有一段段文字揪著反復讀。學生已經能復述下來故事了,多次的重復孩子也會厭煩。于是,我把省下來的時間放手讓學生去讀和這篇文章題材一樣的民間故事,像《孟姜女》《白蛇傳》《梁山伯與祝英臺》就是在這樣的氛圍中,在這樣的背景下被學生讀完的。像《安塞腰鼓》、《草原》這些文字較長,語言優美的文章,我讓學生在作預習的時候就要多用一些時間讀通讀熟課文,在課堂上采用多種形式練習朗讀直至背誦,使學生真正感受到語文課所獨有的樂趣,用美的語言去感染孩子。對于課文的處理切忌牽著孩子的思路一段一段地引著講。對于描寫名人事跡的文章,如《錢學森》《詹天佑》《鞋匠的兒子》等課文,在課堂理解的同時,我又讓學生當堂閱讀了校本教材《一路花香》上的三篇文章《錢學森》《詹天佑小傳》《偉大的平民總統——林肯》,既是對課文的一個拓展,又是向課外的一個延伸,讓學生在更好地理解課文的同時,對人物、對中心有了更深一步的解讀。
二、課內閱讀指導、保障閱讀質量
整合課本資源后,原來三堂課時間的教學內容,現在一節課就完成任務了,節省出的時間,就可以運用到課外閱讀的指導。從五年級下學期開始堅持讀《諾亞方舟》到現在的《一路花香》,學生已經讀完了兩本校本教材。本學期又向孩子們推薦了幾本課外書《簡愛》《魯濱遜漂流記》《史記故事》《昆蟲記》等。其次班內每人配備不同種類的書,以小組為單位成立了小小圖書館,同學之間互相傳閱圖書,保障了閱讀的數量。在家長的配合指導下,提供的書籍孩子大都能主動閱讀。我每周拿出一節課的時間評改學生記錄的讀書筆記,評選讀書小明星,加以鼓勵。課內開展的讀書推薦活動,讀書交流活動,保障了閱讀質量。
三、生活化日記,展現閱讀成果
對于孩子來說,培養閱讀興趣,激發寫作欲望是語文教師應該重點關注的事情。通過自由的表達,真實的語境,才能全方位培養孩子的語文素養,使讀書、識字、積累有更廣的展示舞臺。為此我多次舉行生動有趣的活動,為孩子創造寫作素材。語文課堂上,舉行了:國慶聯歡會、觀察新同學、觀看月全食、小小辯論會等一系列的活動;課外,我又指導學生進行了采訪名人、采集落葉、去敬老院做好事、做剪報等一系列活動。因為這些活動,也涌現了一篇篇精彩的佳作,通過黑板報等形式展示孩子的作品,培養了孩子們的興趣,提高了學生學語文的熱情。
四、豐富多彩的語文實踐活動,培養語文素養
利用三節課的時間,我組織學生舉行了以“感恩祖國”為主題的的演講比賽,要求脫稿演講,即訓練了記憶力,又鍛煉了孩子的心理素質,更激發了孩子參加語文實踐活動的興趣。我還開展了寫字比賽,評選寫字小巧手,頒發榮譽證書,讓孩子從小樹立成就感。依托小組合作,我充分發揮每一個孩子的聰明才智,由小組長參與班級管理,制定組內評優制度,評選每周進步最大的孩子,形成了“比、學、趕、幫、超”的學風,現在班內事事有人做,人人有責任,形成了良好的班風。
五、培養了學生良好的讀書習慣
書要靜下心來讀,這是讀書最重要的習慣之一。如何把學生帶進書本,讓他沉浸在書的海洋,陶醉在書香中,創設良好閱讀氛圍至關重要。讀書還要勤于動筆,所謂“好記性不如爛筆頭”。課外閱讀中,我讓學生養成“不動筆墨不讀書” 良好習慣,要求學生在閱讀的同時還要寫好讀書筆記,讀寫結合,以讀促寫,根據學生的差異,為學生設計《讀書筆記本》,讓學生學會寫摘抄式筆記——即教會學生在讀書時,遇到優美的字、詞、句、段、篇或名人名言、俗話諺語把它摘抄在讀書筆記上;在讀過書之后寫下對所讀書的體會,即讀后感;在此基礎上,要求學生不僅要求寫好讀后感覺,還要求能寫出書評。在每周一節閱讀指導課上,我對學生進行閱讀指導,輔導學生作好閱讀筆記或閱讀報告。一段時間下來,學生養成了較好的讀書習慣,促進了學生閱讀與寫作能力的提高。
受益于以上活動的開展,孩子們的閱讀能力有了很大的提高。一學期的閱讀量在幾萬字左右的孩子已超過了一半。這其中有家長的支持,有孩子們的付出,也有自己辛苦的勞作。思想決定行動,細節決定成敗!雖說教無定法,但教者必須有心、有思、有悟、有所改變。改變中尋求永恒,只有樹立大的語文觀,改變一本書教一學期的思想,大膽放手去實踐,才能實實在在的給孩子們留下點什么。在思索中前進,在實踐中總結經驗,我希望我的海量閱讀之路能夠越走越遠,越走越順。
第二篇:海量閱讀總結
誦讀中華經典古詩,打造書香校園
沙嶺小學誦讀古詩側記、小結
營造氛圍,形成特色。沙嶺小學決定,開展“誦讀中華經典古詩,打造書香校園”活動作為教學重要內容之一,營造誦讀中華經典的文化氛圍,將其成為學校教改特色和亮點之一。利用教室、走廊、樓道、圖書室、展板進行經典誦讀的環境渲染。各班在班級黑板上設置讀書小專欄,如“詩詞薈萃”、“經典展示”等,為學生提供展示和交流的平臺。學校利用每日廣播播音時間,設置“中華經典欣賞”小欄目,示范朗誦推薦的篇目。
加強領導,全面實施。此項工作由教導主任領導,語文教研組長具體負責,班主任和語文教師按照誦讀內容及要求、活動時間安排抓好落實。各班圍繞小學生必讀古詩一百首,制定詳實的計劃,將誦讀內容分解到每月、每周、每天,有計劃的分步實施。同時,班主任要配合語文代課教師選好課前領讀主持人。學校要求,從三年級起,動員每個學生采蜜集作為“中華經典積累本”,指導學生抄寫自己喜歡的詩文,建立誦讀卡,隨時進行誦讀,便于記憶。
開展競賽,展示成果。中華經典誦古詩讀活動是學校一項重要的文化教育工程,貴在天天堅持,持之以恒。為促使誦讀經典活動卓有實效,學校要通過開展不同形式的誦讀比賽活動鞏固落實。一是以班級為單位每周開展一次班級誦讀展示活動,評出每周“誦讀能手”。二是組成學生課外活動誦讀興趣小組,在教師或小組長指導下采用兩人賽、小組賽,限時背、師生背、快背、慢背、輪換背、接龍背,抄
寫背、聽記背、問答背等多種形式的誦背,讓靈活而富有變化的方式激發起學生背誦的積極性。三是學校每月組織一次“師生同臺誦讀(書寫)經典大賽”活動,展示師生的風采。學校設置個人、班級獎項給予鼓勵,以此激發師生們的誦讀熱情。
“閱讀不能改變人生的長度,但它可以改變人生的寬度”。全市師生要多讀書,讀好書,會讀書,勤讀書。讓沙嶺小學校園時時充滿勃勃生機,處處洋溢濃濃書香
第三篇:海量閱讀競賽總結
丹水鎮2011秋期海量閱讀競賽活動總結
11月28日,全鎮舉行的中小學生名著名篇閱讀知識競賽活動已經結束,經過精心組織,優秀學生脫穎而出,這為落實“海量閱讀”精神,引導和鼓勵學生積極閱讀,提高綜合素養提供良好的實踐平臺。
本次競賽試卷選取了中小學生課外閱讀材料,依據文章內容設計的試題,從競賽情況看,參賽的大部分學生有良好的閱讀習慣和理解能力,競賽時能夠做到靜心讀文,認真思考,答題思路清晰,表達流暢,個別學生思維活躍,想象豐富,答題有獨到見解。
《義務教育語文課程標準》在闡述語文課程目標時,明確提出要“培養學生的獨立閱讀能力”。葉圣陶先生也曾經指出:“學生須讀書,須能作文,故特設語文課以訓練之。最終目的為:自能讀書,不待老師講;自能作文,不待老師改。老師之訓練必做到此兩點,乃為教學之成功。”要想實現這一教育目標,開展課外閱讀,特別是讓學生在課外閱讀中接觸古今中外優秀的文學名著,確實是非常必要的。課外閱讀文學名著,不僅可以有效的訓練學生的語感,更重要的是,通過課外閱讀,能夠讓學生感受到語文學習的樂趣,教會學生語文學習的方法,培養學生正確的情感態度和價值觀。本次競賽活動,起到極大的促進作用。但從全鎮總體巡視看,感覺到仍然存在許多問題:
一、存在問題,(一)、教師方面:
1.教師的名著閱讀意識不強,學生的作業多,沒有時間閱讀。因此,并沒有多少老師真正去落實。班級圖書角至今還不夠健全,讀書筆記檢查不夠實在。對學校安排的閱讀課雖然沒有占用,但指導力度不夠。
2、教師本身也許具備較高的文學素養,但是,疏于或懶于去激發學生引導學生。其實,教師如果能將自身的閱讀經歷和體會去感染學生,學生是
有興趣去閱讀的,學生不讀書,責任在老師。
3、.一些教師支持不夠。名著閱讀不單是語文老師的事,而是所有教師的事。經常看到老師強行沒收學生的課外書(諸如雜志、名著等)。這無疑在剝奪、打消學生讀書的積極性。
(二)、學生方面:
1、習慣方面。一是靜心閱讀的習慣。有些學生不先通讀文章,拿到題目就做,斷章取義,造成答題的片面性。二是認真審題的習慣。有部分學生由于看不清題目要求而失分,閱讀習慣有待加強。
2、知識方面。一些文學常識要隨機滲透。這些知識在教學中就要求教師慧眼發現,善于捕捉知識點隨堂點撥,讓學生“零存整取”。
(三)、學校方面:
學校的名著閱讀環境還未形成。文學氛圍不夠濃厚,一些老師忙于抓學生過關、抓學生考試。單憑語文的幾場競賽是無法形成讀書氛圍的。因為,其他科目的老師,只要作業量加大一些,就能讓學生疲于奔命。課外閱讀在疲憊的夾縫中進行,勢必影響讀書的積極性和效果。
二、主要建議
(一)學校要創設濃郁的書香氛圍,營造寬松和諧的閱讀環境,激發學生的讀書興趣。
營造寬松和諧的閱讀環境,能激發學生的讀書興趣。學校要多些開展讀書實踐活動,開放校圖書館、班級圖書角,建立定期借閱制度,來營造讀書氛圍,給學生推薦有益的課外讀物,如經典名著、名人故事等,營造有書可讀,有好書可讀的環境和氛圍。同時利用家長會宣講課外閱讀的必要性、重要性,給學生創造良好的讀書環境,培養起閱讀的興趣。2.向學生推薦課外讀物,供學生選擇。可以是書刊的推薦、篇目的推薦和內容的介紹;可以是教師推薦和學生推薦相結合、統一推薦和分散推薦相結合。
(二)教師要教給學生課外閱讀的策略和方法。
“得法于課內,得益于課外”,這是對課外閱讀指導課任務和作用的精辟概括,讓學生習得必要的閱讀策略和方法是課外閱讀指導課的主要目的之
一。學生掌握了有效的閱讀方法,可以使他們大大提高課外閱讀的實效性。
1、教給學生基本的閱讀方法。
(1)精讀法。精讀是為了對讀物內容作充分的理解,而對讀物逐章、逐段、逐句、逐字進行深入閱讀的方法。精讀法有助于幫助學生完整地理解并消化讀物的內容,幫助他們牢固掌握知識,提高思維能力,增強語言修養。
(2)瀏覽法。當今社會是信息時代,我們要閱讀的材料往往很多,而有的文章又往往不需深鉆細研,只需知道個大概即可,有些書我們也只需要其中某一部分資料而已,此時,瀏覽便成了最佳的閱讀方式。瀏覽法能擴大視野,豐富知識,而且省時高效。
(3)批注法。即在閱讀過程中邊讀邊批注,教師在課外閱讀指導課的教學中中應引導學生在閱讀的過程中及時勾畫,記錄下自己的心得體會,隨讀隨寫,手腦并用,養成“不動筆墨不讀書”的良好習慣。
除上述的三種常用閱讀方法外,還有很多其它的閱讀方法,我們要注重指導學生根據不同的閱讀書籍、目的、性質選擇合適的閱讀方式。
2、教給學生課外閱讀積累的方法。
(1)學會做筆記。古人云:“不動筆墨不讀書。”課外閱讀就要培養學生“養成讀書記筆記的習慣”。讀到好的文章,摘錄有關的好詞佳句,記下心得體會,日積月累,潛移默化,這就是閱讀的收獲。
(2)熟讀成誦。對于在課外閱讀過程中讀到的文質兼美的短文、片斷、句子,應鼓勵學生入情入境地進行賞讀,直至達到背誦的程度。并在以后的時間里,經常進行復習。
(3)剪輯法。平時在讀報時發現自己喜愛的文章或資料及時剪下來,分
門別類貼在準備好的本子上,在本子的前面加上目錄、封面。
(三)開展讀書讀報活動。
1、學校要利用晨會、班會,有計劃地組織學生開展一周兩次的集體讀書讀報活動。培養學生讀書讀報意識、興趣、能力,有助于閱讀習慣的養成。
2.、舉行佳句美文的交流、欣賞,讓學生在輕松愉快的氛圍中獲得知識,了解我國燦爛文化,并激發學生學習的積極性和主動性。
3.、開展閱讀手抄報制作比賽,學校要把學生個人的讀書心得反映在自辦的報紙上,從版面設計到稿件組織都親力親為,這樣就能把學生的閱讀、寫作、畫畫、書寫各種能力融于一體,從而豐富了學生的課余生活,并在自我參與中提高整體素質、綜合能力。
4、采用學生喜聞樂見的形式,開展有趣的讀書活動,如舉行故事會、演講會、經驗交流會、主題班隊會、讀書征文、書評等活動,評選出最佳讀書征文、筆記向學校校刊推薦。
(四)學校要開展多元的讀書評價手段。
1、讀書筆記的評價。對“讀書筆記”每周評價,對優秀的讀書筆記給以獎勵。
2、讀書活動評價。如閱讀競賽,讀書征文,優秀習作進行評價。評價從參與態度、成績的優劣客觀地、全面地進行。
3、背誦評價。學生在閱讀中積累的好詞、佳句、精彩片斷、名言警句、古詩文等都得一一背誦,除教師抽查外,充分發揮學習小組的優勢,學生互查背誦。同時調動家長的積極性,督促背誦。
4、測試評價。重視課外閱讀的評價,就能激發學生課外閱讀的興趣,讓學生樂學、善學、會學,從而對學生識字解詞、知識積累、能力培養,起到潛移默化的作用。
丹水鎮中心學校
2011年11月28日
第四篇:海量閱讀(本站推薦)
曹莊小學語文“海量閱讀”課題實施計劃
一、指導思想:
結合聯合校“閱讀中外經典,享受讀書樂趣”課題的研究,結合韓興娥海量閱讀和竇桂梅主題教學的學習,本學年研究的重點在“海量閱讀”的研究上。以教材為原點,挖掘文本中蘊含的文化因子的輻射作用,以師生為資料鏈接的雙主體,共同探尋相關閱讀材料,并在這些參照文本的交互印證下,或體驗、或證實、或演繹課文中已有的觀念,使閱讀的觸角伸向文本的文化源頭、作者的生命經驗、學生的生命體驗。在“法定”的語文學習時空內彌合“課內”與“課外”的鴻溝,讓學生在有限的語文課堂內掌握最大量的信息,激發學生的閱讀興趣,從而達到語文學習的理想境界。培養課題組成員的課題研究能力,為提高教學質量打下扎實的基礎。
二、研究內容:
1、探索培養小學生課外閱讀興趣的手段、途徑。全面提高小學生課外閱讀的興趣。
2、擴大學生的閱讀范圍和質量,培養學生學習語文的能力,減輕負擔,提高質量,從而全面提高語文課堂效率,使學生語文素養全面發展的課堂教學研究。
3、探索低、中、高年級積累能力的要求,構建小學階段課外閱讀中積累能力的層次、體系和指導模式。
4、初步探索適合小學生的單元教學模式,形成有效地課型。
三、具體工作:
1、制訂計劃:
召集課題組成員,制定本學期的課題研究計劃,確定研究目標和研究內容,討論課題組活動形式。向課題組教師提出明確的自學要求、規定每學期應完成的研究任務,扎扎實實的做好課題的研究工作。
2、理論學習與交流:
首先,我們將組織課題組成員對“課題研究方案”再次學習,進一步明確研究的目的,清晰研究的內容,加深對“海量閱讀”有關概念的了解。
同時,我們將借助網絡提供有關韓興娥“海量閱讀”及竇桂梅“主題教學”的學習材料,采取自主學習、集體交流的形式,在概念上面都有比較清晰的認識。
另外,我們會安排一些特級教師特別是竇桂梅老師的教學案例,學習在課堂實踐中他們是如何利用課外文本來提高課堂教學的有效性,提高閱讀理解能力,提升語文素養的。
在理論學習的基礎上我們將專門組織課題組成員進行研討沙龍活動,對學習的心得、實踐中的思考與困惑等進行交流,在交流中碰撞出思維的火花,促進課題研究的深入。
3、課堂實踐:
課題研究要基于課堂,立足于課堂,要在課堂教學實踐中發現課內外文本最佳的契合點,發現激發學生閱讀興趣,提高閱讀能力、積累豐富知識、提升語文素養的指導方式和方法,并形成一定的教學指導模式。本學期每月開展課堂專題研討課一次,并邀請學校領導和各級領導對研討課進行評點與指導。
本學期注重隨堂課形式與效果,打算形成系統的教學案例與教案。
4、撰寫論文:
組織教師積極撰寫論文、教學案例,參加各級各類的評比。組織好課題優秀論文、優秀案例等的匯編工作,形成課題成果群。提高本組老師的科研能力。
四、每月工作安排: 10月:
1、調整課題組成員。
2、討論課題組計劃,制定課題實施方案。
3、上課題組研究課。11月:
1、組織課題組成員進行關于“海量閱讀”的理論學習。
2、各實驗教師根據自身的教學班級進行實驗。12月:
1、各實驗教師進行研討。
3、上好兩節課題研究課。1月:
1、學習相關理論,寫好隨筆。
2、上好兩節課題上研究課。
3、進行課題組總結。
第五篇:大數據量,海量數據 處理方法總結
大數據量,海量數據 處理方法總結 大數據量的問題是很多面試筆試中經常出現的問題,比如baidu google 騰訊 這樣的一些涉及到海量數據的公司經常會問到。
下面的方法是我對海量數據的處理方法進行了一個一般性的總結,當然這些方法可能并不能完全覆蓋所有的問題,但是這樣的一些方法也基本可以處理絕大多數遇到的問題。下面的一些問題基本直接來源于公司的面試筆試題目,方法不一定最優,如果你有更好的處理方法,歡迎與我討論。1.Bloom filter 適用范圍:可以用來實現數據字典,進行數據的判重,或者集合求交集
基本原理及要點:
對 于原理來說很簡單,位數組+k個獨立hash函數。將hash函數對應的值的位數組置1,查找時如果發現所有hash函數對應位都是1說明存在,很明顯這 個過程并不保證查找的結果是100%正確的。同時也不支持刪除一個已經插入的關鍵字,因為該關鍵字對應的位會牽動到其他的關鍵字。所以一個簡單的改進就是 counting Bloom filter,用一個counter數組代替位數組,就可以支持刪除了。還有一個比較重要的問題,如 何根據輸入元素個數n,確定位數組m的大小及hash函數個數。當hash函數個數k=(ln2)*(m/n)時錯誤率最小。在錯誤率不大于E的情況 下,m至少要等于n*lg(1/E)才能表示任意n個元素的集合。但m還應該更大些,因為還要保證bit數組里至少一半為0,則m應 該>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2為底的對數)。舉個例子我們假設錯誤率為0.01,則此時m應大概是n的13倍。這樣k大概是8個。
注意這里m與n的單位不同,m是bit為單位,而n則是以元素個數為單位(準確的說是不同元素的個數)。通常單個元素的長度都是有很多bit的。所以使用bloom filter內存上通常都是節省的。
擴展:
Bloom filter將集合中的元素映射到位數組中,用k(k為哈希函數個數)個映射位是否全1表示元素在不在這個集合中。Counting bloom filter(CBF)將位數組中的每一位擴展為一個counter,從而支持了元素的刪除操作。Spectral Bloom Filter(SBF)將其與集合元素的出現次數關聯。SBF采用counter中的最小值來近似表示元素的出現頻率。問題實例:給你A,B兩個文件,各存放50億條URL,每條URL占用64字節,內存限制是4G,讓你找出A,B文件共同的URL。如果是三個乃至n個文件呢? 根 據這個問題我們來計算下內存的占用,4G=2^32大概是40億*8大概是340億,n=50億,如果
按出錯率0.01算需要的大概是650億個bit。現在可用的是340億,相差并不多,這樣可能會使出錯率上升些。另外如果這些urlip是一一對應的,就可以轉換成ip,則大大簡單了。2.Hashing 適用范圍:快速查找,刪除的基本數據結構,通常需要總數據量可以放入內存
基本原理及要點:
hash函數選擇,針對字符串,整數,排列,具體相應的hash方法。
碰撞處理,一種是open hashing,也稱為拉鏈法;另一種就是closed hashing,也稱開地址法,opened addressing。
擴展:
d-left hashing中的d是多個的意思,我們先簡化這個問題,看一看2-left hashing。2-left hashing指的是將一個哈希表分成長度相等的兩半,分別叫做T1和T2,給T1和T2分別配備一個哈希函數,h1和h2。在存儲一個新的key時,同 時用兩個哈希函數進行計算,得出兩個地址h1[key]和h2[key]。這時需要檢查T1中的h1[key]位置和T2中的h2[key]位置,哪一個 位置已經存儲的(有碰撞的)key比較多,然后將新key存儲在負載少的位置。如果兩邊一樣多,比如兩個位置都為空或者都存儲了一個key,就把新key 存儲在左邊的T1子表中,2-left也由此而來。在查找一個key時,必須進行兩次hash,同時查找兩個位置。問題實例: 1).海量日志數據,提取出某日訪問百度次數最多的那個IP。
IP的數目還是有限的,最多2^32個,所以可以考慮使用hash將ip直接存入內存,然后進行統計。3.bit-map 適用范圍:可進行數據的快速查找,判重,刪除,一般來說數據范圍是int的10倍以下 基本原理及要點:使用bit數組來表示某些元素是否存在,比如8位電話號碼
擴展:bloom filter可以看做是對bit-map的擴展 問題實例: 1)已知某個文件內包含一些電話號碼,每個號碼為8位數字,統計不同號碼的個數。
8位最多99 999 999,大概需要99m個bit,大概10幾m字節的內存即可。
2)2.5億個整數中找出不重復的整數的個數,內存空間不足以容納這2.5億個整數。將bit-map擴展一下,用2bit表示一個數即可,0表示未出現,1表示出現一次,2表示出現2次及以上。或者我們不用2bit來進行表示,我們用兩個bit-map即可模擬實現這個2bit-map。
4.堆 適用范圍:海量數據前n大,并且n比較小,堆可以放入內存 基 本原理及要點:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我們比較當前元素與最大堆里的最大元素,如果它小于最大元素,則應該替換那個最大元 素。這樣最后得到的n個元素就是最小的n個。適合大數據量,求前n小,n的大小比較小的情況,這樣可以掃描一遍即可得到所有的前n元素,效率很高。
擴展:雙堆,一個最大堆與一個最小堆結合,可以用來維護中位數。問題實例: 1)100w個數中找最大的前100個數。
用一個100個元素大小的最小堆即可。
5.雙層桶劃分 適用范圍:第k大,中位數,不重復或重復的數字
基本原理及要點:因為元素范圍很大,不能利用直接尋址表,所以通過多次劃分,逐步確定范圍,然后最后在一個可以接受的范圍內進行。可以通過多次縮小,雙層只是一個例子。擴展: 問題實例: 1).2.5億個整數中找出不重復的整數的個數,內存空間不足以容納這2.5億個整數。有點像鴿巢原理,整數個數為2^32,也就是,我們可以將這2^32個數,劃分為2^8個區域(比如用單個文件代表一個區域),然后將數據分離到不同的區域,然后不同的區域在利用bitmap就可以直接解決了。也就是說只要有足夠的磁盤空間,就可以很方便的解決。
2).5億個int找它們的中位數。這個例子比上面那個更明顯。首先我們將int劃分為2^16個區域,然后讀取數據統計落到各個區域里的數的個數,之后我們根據統計結果就可以判斷中位數落到那個區域,同時知道這個區域中的第幾大數剛好是中位數。然后第二次掃描我們只統計落在這個區域中的那些數就可以了。
實 際上,如果不是int是int64,我們可以經過3次這樣的劃分即可降低到可以接受的程度。即可以先將int64分成2^24個區域,然后確定區域的第幾 大數,在將該區域分成2^20個子區域,然后確定是子區域的第幾大數,然后子區域里的數的個數只有2^20,就可以直接利用direct addr table進行統計了。6.數據庫索引 適用范圍:大數據量的增刪改查 基本原理及要點:利用數據的設計實現方法,對海量數據的增刪改查進行處理。擴展: 問題實例: 7.倒排索引(Inverted index)適用范圍:搜索引擎,關鍵字查詢 基本原理及要點:為何叫倒排索引?一種索引方法,被用來存儲在全文搜索下某個單詞在一個文檔或者一組文檔中的存儲位置的映射。
以英文為例,下面是要被索引的文本: T0 = “it is what it is” T1 = “what is it” T2 = “it is a banana” 我們就能得到下面的反向文件索引: “a”: {2} “banana”: {2} “is”: {0, 1, 2} “it”: {0, 1, 2} “what”: {0, 1}
檢索的條件“what”, “is” 和 “it” 將對應集合的交集。正 向索引開發出來用來存儲每個文檔的單詞的列表。正向索引的查詢往往滿足每個文檔有序頻繁的全文查詢和每個單詞在校驗文檔中的驗證這樣的查詢。在正向索引 中,文檔占據了中心的位置,每個文檔指向了一個它所包含的索引項的序列。也就是說文檔指向了它包含的那些單詞,而反向索引則是單詞指向了包含它的文檔,很 容易看到這個反向的關系。擴展: 問題實例:文檔檢索系統,查詢那些文件包含了某單詞,比如常見的學術論文的關鍵字搜索。8.外排序 適用范圍:大數據的排序,去重 基本原理及要點:外排序的歸并方法,置換選擇 敗者樹原理,最優歸并樹
擴展:
問題實例: 1).有一個1G大小的一個文件,里面每一行是一個詞,詞的大小不超過16個字節,內存限制大小是1M。返回頻數最高的100個詞。這個數據具有很明顯的特點,詞的大小為16個字節,但是內存只有1m做hash有些不夠,所以可以用來排序。內存可以當輸入緩沖區使用。9.trie樹 適用范圍:數據量大,重復多,但是數據種類小可以放入內存 基本原理及要點:實現方式,節點孩子的表示方式 擴展:壓縮實現。問題實例: 1).有10個文件,每個文件1G,每個文件的每一行都存放的是用戶的query,每個文件的query都可能重復。要你按照query的頻度排序。
2).1000萬字符串,其中有些是相同的(重復),需要把重復的全部去掉,保留沒有重復的字符串。請問怎么設計和實現?
3).尋找熱門查詢:查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復后,不超過3百萬個,每個不超過255字節。10.分布式處理 mapreduce 適用范圍:數據量大,但是數據種類小可以放入內存
基本原理及要點:將數據交給不同的機器去處理,數據劃分,結果歸約。
擴展:
問題實例: 1).The canonical example application of MapReduce is a process to count the appearances of
each different word in a set of documents:
void map(String name, String document):
// name: document name
// document: document contents
for each word w in document: EmitIntermediate(w, 1);void reduce(String word, Iterator partialCounts): // key: a word // values: a list of aggregated partial counts int result = 0;for each v in partialCounts: result += ParseInt(v);Emit(result);Here, each document is split in words, and each word is counted initially with a “1” value by
the Map function, using the word as the result key.The framework puts together all the pairs
with the same key and feeds them to the same call to Reduce, thus this function just needs to
sum all of its input values to find the total appearances of that word.2).海量數據分布在100臺電腦中,想個辦法高效統計出這批數據的TOP10。
3).一共有N個機器,每個機器上有N個數。每個機器最多存O(N)個數并對它們操作。如何找到N^2個數的中數(median)? 經典問題分析 上千萬or億數據(有重復),統計其中出現次數最多的前N個數據,分兩種情況:可一次讀入內存,不可一次讀入。
可用思路:trie樹+堆,數據庫索引,劃分子集分別統計,hash,分布式計算,近似統計,外排序
所 謂的是否能一次讀入內存,實際上應該指去除重復后的數據量。如果去重后數據可以放入內存,我們可以為數據建立字典,比如通過 map,hashmap,trie,然后直接進行統計即可。當然在更新每條數據的出現次數的時候,我們可以利用一個堆來維護出現次數最多的前N個數據,當 然這樣導致維護次數增加,不如完全統計后在求前N大效率高。
如果數據無法放入內存。一方面我們可以考慮上面的字典方法能否被改進以適應這種情形,可以做的改變就是將字典存放到硬盤上,而不是內存,這可以參考數據庫的存儲方法。
當 然還有更好的方法,就是可以采用分布式計算,基本上就是map-reduce過程,首先可以根據數據值或者把數據hash(md5)后的值,將數據按照范 圍劃分到不同的機子,最好可以讓數據劃分后可以一次讀入內存,這樣不同的機子負責處理各種的數值范圍,實際上就是map。得到結果后,各個機子只需拿出各 自的出現次數最多的前N個數據,然后匯總,選出所有的數據中出現次數最多的前N個數據,這實際上就是reduce過程。實際上可能想直 接將數據均分到不同的機子上進行處理,這樣是無法得到正確的解的。因為一個數據可能被均分到不同的機子上,而另一個則可能完全聚集到一個機子上,同時還可 能存在具有相同數目的數據。比如我們要找出現次數最多的前100個,我們將1000萬的數據分布到10臺機器上,找到每臺出現次數最多的前 100個,歸并之后這樣不能保證找到真正的第100個,因為比如出現次數最多的第100個可能有1萬個,但是它被分到了10臺機子,這樣在每臺上只有1千 個,假設這些機子排名在
1000個之前的那些都是單獨分布在一臺機子上的,比如有1001個,這樣本來具有1萬個的這個就會被淘汰,即使我們讓每臺機子選 出出現次數最多的1000個再歸并,仍然會出錯,因為可能存在大量個數為1001個的發生聚集。因此不能將數據隨便均分到不同機子上,而是要根據hash 后的值將它們映射到不同的機子上處理,讓不同的機器處理一個數值范圍。
而外排序的方法會消耗大量的IO,效率不會很高。而上面的分布式方法,也可以用于單機版本,也就是將總的數據根據值的范圍,劃分成多個不同的子文件,然后逐個處理。處理完畢之后再對這些單詞的及其出現頻率進行一個歸并。實際上就可以利用一個外排序的歸并過程。
另外還可以考慮近似計算,也就是我們可以通過結合自然語言屬性,只將那些真正實際中出現最多的那些詞作為一個字典,使得這個規模可以放入內存。