原创 C編譯器的八個編譯階段

編譯程序有八個步驟。這些步驟包括:   1.  從源代碼文件中讀取字符,如果有必要的話,將字符轉換成源代碼字符集的字符。如果源代碼中的行尾字符和換行字符不一樣,就進行替換。類似地,任何三字符組符號會被替換成賭贏的單一字符。   2.  不

原创 操作最後n個數據元素 類問題的解題思想

題目的提出是這樣的:   在Unix操作系統中有一條命令,該命令的功能是依次打印文本文件的最後n行。命令格式爲:                                        tail [-n] filename   其中

原创 redhat5.5 安裝gcc編譯器過程

 redhat真是麻煩,裝gcc的過程很煎熬,除了yum方式就是找到rpm文件再手動安裝。下面簡單說說redhat 5.5中安裝gcc編譯器的過程吧。ps:RPM是RedHat Package Manager(RedHat軟件包管理工具)

原创 Linux下svn的常用工作流程

  上篇文章在ubuntu和redhat5.5上搭建好了svnserve環境,下面總結一下svn的具體使用流程。   服務器的搭建 1)建立代碼庫。

原创 redhat5.5 上安裝svnserve

前幾天再ubuntu上安裝了一個svnserve,可是服務器用的是redhat,又只能練習下在redhat上安裝svnserve的過程了,很繁瑣地說。。。這篇文章只介紹安裝過程,且只介紹svn1.4版本的安裝過程,不包括使用以及配置過程

原创 C/C++編譯預處理指令

衆所周知,你的程序編譯前要做的事就是掃描源代碼,對其做初步的轉換,產生新的源代碼提供給編譯器,這個過程就叫編譯預處理。這個處理過程由預處理器來完成,預處理器是在程序真正運行前由編譯器調用的預處理程序。           常見的預處理有以

原创 計算機啓動後的內幕

作爲這個分類下的第一篇文章,說說計算機在開機按鈕被按下後在黑色屏幕下幹了些什麼“勾當”。我想,這應該是每一位學習操作系統的人都應該瞭解的。   打開計算機機電源後到計算機準備接受你發出的命令之間計算機所運行的過程稱爲引導(Boot)過程。

原创 同時尋找最大數和最小數的最優算法

     我們知道,在一個容量爲n的數據集合中尋找一個最大數,不管用什麼樣的比較算法,至少要比較n-1次,就算是用競標賽排序也得比較n-1次,否則你找到的就不能保證是最大的數。那麼,在一個容量爲n的數據集合中同時尋找最大數和最小數的最小比

原创 剖析ext4文件系統

簡介: 第 4 個擴展文件系統,即 ext4,是下一代的日誌文件系統,它與上一代文件系統 ext3 是向後兼容的。儘管 ext4 目前還不是標準文件系統,但它將成爲大部分下一代 Linux® 發行版的默認文件系統。瞭解 ext4,以及

原创 堆和棧的區別

一、預備知識—程序的內存分配     一個由C/C++編譯的程序佔用的內存分爲以下幾個部分     1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其     操作方式類似於數據結構中的棧。  

原创 你真的瞭解sizeof 麼?

sizeof並不是C語言和C++語言中的一個函數,而是一個關鍵字,一個操作符。 它的作用是返回一個對象或者類型名的長度,也就是說這個對象或者類型所佔的內存字節數。它的返回值類型爲size_t(usinged int),長度的單位是字

原创 十道海量數據處理面試題與十個方法大總結【轉】

第一部分、十道海量數據處理面試題  1、海量日誌數據,提取出某日訪問百度次數最多的那個IP。     此題,在我之前的一篇文章:十一、從頭到尾徹底解析Hash表算法裏頭有所提到,當時給出的方案是:IP的數目還是有限的,最多2^32個,所

原创 值 之一 值與類型

                                                           值與類型          數據是計算機加工的對象,無論是什麼計算機程序不外乎希望經過計算得到我們需要的數據值或者計

原创 ubuntu中設置vim的默認選項

  默認情況下vim的行號等都是不顯示的,本人比較喜歡看有行號的代碼,每次進入vim後都要手動輸入:set nu ,默認設置vim的顯示行號還是挺有

原创 數據結構教材之外的排序算法分析

大多數據結構書中,排序這一章的內容基本上都是直接插入排序、折半插入排序、直接選擇排序、起泡排序、堆排序、快速排序、歸併排序、基數排序。這幾種排序方法中,最好的算法的空間複雜度除了快速排序外都是O(1),平均時間複雜度最小爲O(nlogn)