原创 一、虛擬內存分配和分頁

在計算機系統中內存管理模塊是最重要的模塊之一,以linux來說,整個內核(kernel)源碼中有近三分之一上的篇幅是與內存管理相關的。而作爲應用程序來說,也離不開內存的分配和回收,不管是在靜態的編譯階段還是在程序運行過程中的動態分配。內存

原创 linux下arp攻擊的實現

arp攻擊,arp病毒曾經瘋狂的流行了一陣子。 下面是簡單的arp攻擊原來的實現例子,只是一個示例,離真正的arp攻擊還有一點距離,現在的arp攻擊越來越隱蔽越來越高科技了。 (儘量少用,很容易使攻擊的主機癱瘓)    #include

原创 類HashMap,但內存減少到原1/6的實現

java中的Map在提供方便實用的同時,也存在內存浪費巨大的問題。當Map中的Entry數量達到1000萬 條以上的時候,需要數G的內存空間 .這裏提到的Map使用形式爲HashMap<String,Byte>,平均每個key在20個字符

原创 rpm文件解壓方法

  今天,在安裝myodbc庫的時候,下載了rpm格式的包,安裝時發現缺少一些依賴包,很煩人;於是想如果能不用安裝這些依賴就能解壓出rpm包中的文件就好了;在網上搜索了下,找到一個腳本,記錄下來,供有需要者使用     #!/bin/b

原创 c分析面向對象的實現技術

面向對象編程和結構化編程幾乎在同一時期出現。但是由於早些時候的機器環境不允許,如內存、cpu等。導致面向對象技術沒有得到及時的發展,而同時因爲結構化程序對硬件要求不是那麼強烈,所以及時的發展起來了。 但是雖然如此,更多的人在談到面向對象時

原创 構造哈夫曼樹

哈夫曼編碼以其高壓縮比和壓縮性能方面的優勢一直在通信、數據壓縮等領域佔有重要的位置。 要實現哈夫曼編碼必須先構造一棵哈夫曼樹,下面就通過java進行簡單的實現,通過圖形化的方式展現生成哈夫曼樹的全過程。  import java.awt.

原创 Java與mysql亂碼的問題

      安裝選擇GBK,使用選擇UTF-8。 解決方法一:(最重要的一種方法)             打開mysql目錄下的bin文件夾,找到my.ini,使用記事本找開,分別找“[mysql]、[client]、[mys

原创 磁盤讀寫二叉樹

內存中的二叉樹怎麼存儲在硬盤上?當用的時候再還原出原來的樹形結構? 可以衍生一下,在建立動態索引的時候,索引一般使用的是樹形結構,此時的樹要怎麼存儲?想必此問題多數人都遇到過,並且困擾了不少時間。 下面就二叉樹的實現爲例說明這個存儲過程,

原创 淺談C中的wprintf和寬字符顯示

From:http://blog.csdn.net/lovekatherine/archive/2007/11/06/1868724.aspx 今天在CSDN的Blog首頁看到一篇文章“也談計算機字符編碼 ”,由於前一陣業餘翻譯了“UT

原创 從數組中查找出最大最小兩數的log(n)算法

從一個數組中選擇出最大和最小兩個數的一般實現方法是從數組第一個元素到最後一個挨個比較,用兩個數分別記錄max、min,時間複雜性爲O(n).其實還有效率更高的方法,下面將介紹的方法時間複雜性爲O(log(n))   #include <s

原创 c繼承

      #include <stdlib.h> typedef enum {CIRCLE,RECTANGLE}TYPE; struct Circle{ TYPE t; int x; int y; int

原创 二分法求數列的最大子段和問題

給定n個元素的整數數列,求出子段和最大的子段。   #include <stdio.h> int max_sub_sum(int a[],int left, int right,int *left_partion,int *right_p

原创 最小堆的實現

  堆作爲重要的數據結構之一,分爲最大堆和最小堆是二叉堆 的兩種形式。 最大堆 :根結點的鍵值是所有堆結點鍵值中最大者的堆。 最小堆 :根結點的鍵值是所有堆結點鍵值中最小者的堆。 下面是引自wikipedia的最小堆示例圖:     程

原创 freebase使用總結

近來公司要從freebase上引用部分數據,所以讓我來處理,分析看看那些數據有幫助,並且怎麼獲取數據。因此花了幾天的時間就耗在此上了。 什麼是freebase?也許聽說過wikipedia的人很多,但聽說過freebase的就不那麼多了。

原创 搜索引擎技術內幕之索引

搜索引擎中索引的好壞直接影響着搜索引擎的性能,最終影響到用戶的體驗,可見索引的重要性。 今天我們就來談談索引技術。談到索引大家第一想到的是倒排索引,的確倒排在全文檢索中的優勢,在搜索引擎中的大量使用令它聲名鵲起。所以在此就以倒排進行分析。