1. 程式人生 > >待完成的任務

待完成的任務

瞭解:
1、Arrays.mergeSort排序演算法
2、BigInteger的實現原理
3、紅黑樹的新增和刪除操作實現
4、Collections各方法的相關實現
5、ORACLE怎麼查詢db_cache pool中的block,比如全表掃描怎麼查詢到所有的block。
6、學習apache,memcached、webservice、MYSQL


大資料量處理演算法:
1. Bloom Filter
2. Hash
3. Bit-Map
4. 堆
5. 雙層桶劃分
6. 資料庫索引
7. 倒排索引(Inverted Index)
8. 外排序
9. Trie樹
10. MapReduce
1、bloom filter
轉載:http://www.hellodba.net/2009/04/bloom_filter.html
設想以下的一個問題:有一個keyword的集合,我們需要快速判定某個keyword是否包含在其中。最簡單的方法是遍歷,但是效率很差。我們馬上想到了hash的方法,因為在Oracle內部,hash無處不在。比如在cache buffer中找到某個block,在shared pool中找到某個SQL等等。我們可以把keyword的集合build成一個hash table,然後根據keyword計算hash值,通過是否落在相應的hash bucket中,這樣就可以實現快速查詢的目的。這個方法不錯,但是當keyword過多時,hash table會佔用大量記憶體,效率也會隨之下降。

今天公司的架構師介紹了一個新的方法給我:Bloom Filter。它是一種基於隨機數(或Hash)的資料結構,它支援對成員使用較少空間來儲存,卻能得到較高效率的查詢。換句話說:在Bloom Filter 可以用於檢索一個元素是否在一個集合中。其原理如下:

建立一個容量為500萬的Bit Array結構(Bit Array的大小和keyword的數量決定了誤判的機率),將集合中的每個keyword通過32個hash函式分別計算出32個數字,然後對這32個數字分別用500萬取模,然後將Bit Array中對應的位置為1,我們將其稱為特徵值。簡單的說就是將每個keyword對應到Bit Array中的32個位置上,見下圖:

[img]http://dl.iteye.com/upload/attachment/333383/934e7bf6-acd1-3528-89b7-71a4a325af1e.jpg[/img]

當需要快速查詢某個keyword時,只要將其通過同樣的32個hash函式運算,然後對映到Bit Array中的對應位,如果Bit Array中的對應位全部是1,那麼說明該keyword匹配成功。
Bloom filter 是一個集合的有損編碼,所以它不是一種“保險”的方案,存在一定的誤判率。

另參考:http://blog.csdn.net/jiaomeng/archive/2007/01/27/1495500.aspx
========================================================================


1、在一條街上,有5座房子,噴了5種顏色。
2、每個房裡住著不同國籍的人
3、每個人喝不同的飲料,抽不同品牌的香菸,養不同的寵物


問題是:誰養魚?


提示:
1、英國人住紅色房子
2、瑞典人養狗
3、丹麥人喝茶
4、綠色房子在白色房子左面
5、綠色房子主人喝咖啡
6、抽Pall Mall 香菸的人養鳥
7、黃色房子主人抽Dunhill 香菸
8、住在中間房子的人喝牛奶
9、 挪威人住第一間房
10、抽Blends香菸的人住在養貓的人隔壁
11、養馬的人住抽Dunhill 香菸的人隔壁
12、抽Blue Master的人喝啤酒
13、德國人抽Prince香菸
14、挪威人住藍色房子隔壁
15、抽Blends香菸的人有一個喝水的鄰居


以上是愛因斯坦在20世紀初出的這個謎語。他說世界上有98%的人答不出來。
你能做出來嗎?

相關推薦

完成任務

瞭解:1、Arrays.mergeSort排序演算法2、BigInteger的實現原理3、紅黑樹的新增和刪除操作實現4、Collections各方法的相關實現5、ORACLE怎麼查詢db_cache pool中的block,比如全表掃描怎麼查詢到所有的block。6、學習ap

任務和目標的區別,以及怎樣完成任務、實現目標

獲得 可能性 都是 一個 結合 意誌力 試驗 專家 www https://www.douban.com/note/524880185/?type=like 使用Todoist工作了一段時間,完成了一些工作,也造成了一些拖延。造成拖延的原因是,我實在是沒有辦法在設定的dea

根據類型動態生成數據 html錨點使用 分頁 完成

attack tle 請求 get ndarray pla anim pan 生成 { "sucess":"true", "list": [ { "id":1, "type":"common", "name":"moudule1"

【在線】使用在線軟件來完成任務

作圖 roc 時間 itl run 文檔 瀏覽器 實時 -- 在線畫畫 ProcessOn   百度腦圖 在線辦公軟件 user.me 在線寫作 ShowDoc   看雲 在線獲取編程知識 菜鳥教程   MobDevGroup    在線設計APP原型圖 墨刀【在線】使用在

MIT墻上的格言(如果你把任務留到最後一分鐘,那麽你一定能在一分鐘內完成任務

.cn 諾貝爾 ica 法拉第 ctr 幸福 貝爾 ace nbsp 1,永遠不能忘記傅立葉變換。 Never far no can forget Fuliye changer. 2,盲目的研究者就像法拉第和麥克斯韋之間的電學家一樣無所適從。 B

完成任務的第一天!

想要 兩個 要花 發現 把手 任務 浪費 中間 時間 開心!滿足!今天做到了對四座大山的雨露均沾~覺得離想要的分數又進了一步! 雖然每項的兩個小時時間應該是夠了,還是來總結一下完成的效率吧: 聽力:1.5h/2h 寫作:1h/2h 閱讀:1h/2h 口語:1.5h/2h 聽

計算日期類型-未完完成

小時 top _id div num lec objects 兩種 cts /* =======================================版權:CuiYaChao創 建 人:CuiYaChao創建日期:功能描述:傳遞6個參數 開始日期 開始小時 開始分

完成

HR lin 索引 io流 數據庫 OS class blog 基本 sychronized,volatile原理 IO流 裝飾者設計模式 IO流基本知識點 IO中那些事線程安全的, 設計模式 算法題 數據結構 網絡 linux 數據庫索引 待更新待完成

並發標記掃描(CMS)收集器(完成

一段時間 rap tex 資源 div 標記 pac eight 所有 並發標記掃描(CMS)收集器專為需要較短垃圾收集暫停時間且能夠在應用程序運行時與垃圾收集器共享處理器資源的應用程序而設計。 對於任何暫停時間要求較低的應用程序,應考慮使用此收集器。 使用命令行選項啟用C

完成】[HDFS_3] HDFS 工作機制

str 檢查 reat 輸出流 com default font === 過程 0. 說明   HDFS 初始化文件系統分析 && HDFS 文件寫入流程 && HDFS 文件讀取流程分析 1. HDFS 初始化文件系

完成】[MapReduce_7] MapReduce 中的排序

  0. 說明         1. 介紹      sort 是根據 Key 進行排序     【部分排序】   在每個分割槽中,分別進行排序     【全排序】   在所有的分割槽

docker+jenkins+maven+gitlab搭建整合java持續整合環境(完成)

環境:虛擬機器下centos7   首先配置jdk: mkdir /usr/local/java 下載jdk1.8:官網:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133

4-3 高效讀取文件 --完成

寫入文件 () sdfsdf sdfs adl sdf list read code 1、使用readlines()將列表和字符串寫入文件 1 f = open(‘users‘,‘a+‘) #文件對象,或者文件句柄 2 l=[‘abc123\n‘,‘bcd345\n‘]

專案組成員總是無法完成任務,咋辦?

計劃做得挺好,我們卻常常碰到無法按計劃完成任務的情況。尤其是某些人經常無法按計劃完成任務,咋辦? 一、原因 1、能力問題。某些人不具備完成任務的能力,具體表現在人不適崗。 2、態度問題。人心不齊,沒有必須完成任務的決心。 3、目標理解問題。具體執行人沒有準備理解任務目標,執行結果不是

一篇完成的面經

響應式佈局 metab標籤都有哪些屬性?跟安全相關的有哪些? css3如何實現一個運動的效果? 有用瀏覽器除錯過css3的效能問題嗎? flex佈局有了解過嗎?如何實現一個兩邊固定的效果? position屬性都有哪些值?分別有哪些含義? 你剛提到了重繪重排,什

為什麼要使用INTERFACE,而不是直接使用一個實體類來完成任務? INTERFACE和IMPL這種方式的好處是什麼?

1.背景介紹 介面(interface):在JAVA中,介面是對行為的抽象,是一組規則的集合. 介面是抽象類的延伸可以將它看做是純粹的抽象類. 抽象類 一個類含有抽象方法則稱這個類為抽象類,用abstract修飾,抽象類中並不能只有抽象方法,它和普通類一樣,同樣

程式設計師提前完成任務不加班,領導:效率高,不能成為不加班的理由

在職場上因為員工的能力高低不同,同樣的工作量每個人完成所需的時間也就有長有短。而作為領導,有可能會看到提前完成工作的員工早早的就下班回家了,而做的慢的員工每天都在加班加點,這個時候領導就可能會對每天加班的員工更欣賞,而認為下班早的員工在偷懶。 就有一名程式設計師因為

2018年10月17日提高組 T1 春思(完成

大意 求ABA^BAB的所有約數之和 思路 首先A=p1c1p2c2p3c3p4c4……A=p_1^{c_1}p_2^{c_2}p_3^{c_3}p_4^{c_4}……A=p1c1​​p2c2​​p3

FutureTask學習筆記(完成

兩種情況想使用FutureTask public class Main{    public static void main(String[] args){              FutureTask<String> future = new Futu

基於jieba改寫的分詞算(完成

基於jieba改寫的分詞演算法 import os, re, pandas as pd from math import log from time import time # 基礎目錄 BASE_PATH = os.path.dirname(__file__