原创 Hash學習(1)-Hash表的表大小

               hash表的出現主要是爲了對內存中數據的快速、隨機的訪問。它主要有三個關鍵點:Hash表的大小、Hash函數、衝突的解決。            這裏首先談談第一點:Hash表的大小。          

原创 Java查漏系列(1)——JVM

一年多的時間沒搞過java了,最近在學習hadoop,所以想把java再撿一撿,以前主要關注java的語法和api等,很少關注底層內存等,所以現在找時間把這塊撿撿。 JVM,全稱java virtual machine,也就是java虛擬

原创 全文檢索原理

轉載一篇總結的相當不錯的全文檢索原理的文章         我們生活中的數據總體分爲兩種:結構化數據和非結構化數據。        結構化數據:指具有固定格式或有限長度的數據,如數據庫,元數據等。         非結構化數據:指不定長或

原创 bitmap解析

1.引子          問題描述:          輸入:一個最多含有n個不重複的正整數(也就是說可能含有少於n個不重複正整數)的文件,其中每個數都小於等於n,且n=10^7。          輸出:得到按從小到大升序排列的包含所

原创 hadoop學習筆記(1) 開發環境

剛開始學習hadoop,首先搭建了一下開發環境,最開始是在單獨編寫Map-Reduce程序,然後在命令行編譯,再通過hadoop命令運行打好的jar包,雖然也能夠運行,但是總感覺這樣用起來很麻煩,所以今晚又嘗試了直接通過eclipse來編

原创 c++中const的作用

採用符號常量寫出的代碼更容易維護;指針常常是邊讀邊移動,而不是邊寫邊移動;許多函數參數是隻讀不寫的。const最常見用途是作爲數組的界和switch分情況標號(也可以用枚舉符代替) 用法1:常量 取代了C中的宏定義,聲明時必須進行初始化。

原创 static作用

在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個文件時,所有未加static前綴的全局變量和函數都具有全局可見性。爲理解這句話,我舉例來說明

原创 Hash學習(2)-Hash函數

            一個好的hash函數一般具有以下兩個特點:第一,速度快,第二,能夠將散列鍵均勻的分佈在整個表中,保證不會產生聚集。通常,hash函數具有如下形式: hash-key = calculated-key % table

原创 SVM學習(四):爲何需要核函數

         生存?還是毀滅?——哈姆雷特        可分?還是不可分?——支持向量機        之前一直在討論的線性分類器,只能對線性

原创 Hash學習(3)-衝突的解決

         爲提高hash表查找性能,除了考慮選擇合適的hash表表長和完美的hash函數外,還必須考慮hash表處理衝突的能力。當hash函數對兩個不同的數據項產生了相同的hash值時,衝突就產生了。對於衝突的處理,通常採用的方法

原创 AVL樹學習

1.什麼是AVL樹           AVL樹是帶有平衡條件的二叉查找樹,是其每個結點的左子樹和右子樹的高度差最多差1的二叉查找樹。如圖1,左邊的樹是AVL樹,但右邊的不是。 圖1 左邊的是AVL樹,右邊的不是 2.AVL樹的基本操

原创 SVM學習(三):線性分類器的求解

1.問題的描述          上節說到我們有了一個線性分類函數,也有了判斷解優劣的標準——即有了優化的目標,這個目標就是最大化幾何間隔,但是看過一些關於SVM的論文的人一定記得什麼優化的目標是要最小化||w||這樣的說法,這是怎麼回事

原创 Java查漏系列(2)——java內存區域

前一節大致的介紹了一下JVM的體系結構,如下圖: 其中,Runtime DataArea(運行時數據區)是整個JVM的重點,平時,由於我們編寫java程序很少關心內存的釋放問題,這個都是JVM來自動管理的,不過,也正是因爲Java程序

原创 SVM學習(五):鬆弛變量與懲罰因子

1.鬆弛變量        現在我們已經把一個本來線性不可分的文本分類問題,通過映射到高維空間而變成了線性可分的。就像下圖這樣:        圓形和方形的點各有成千上萬個(畢竟,這就是我們訓練集中文檔的數量嘛,當然很大了)。現在想象

原创 C++ 虛函數表解析

前言   C++中的虛函數的作用主要是實現了多態的機制。關於多態,簡而言之就是用父類型別的指針指向其子類的實例,然後通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”,這是一種泛型技術。所謂泛型技術,說白了就