原创 Linux進程間通信方式--信號,管道,消息隊列,信號量,共享內存

1、概述 通信方法 無法介於內核態與用戶態的原因 管道(不包括命名管道) 侷限於父子進程間的通信。 消息隊列 在硬、軟中斷中無法無阻塞地接收數據。 信號量 無法介於內核態和用戶態使用。 內存共享 需要信號量輔助,而

原创 leetCode(54):Gas Station

There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You have a car with

原创 leetCode(55):Minimum Window Substring(limits.h頭文件)

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexit

原创 TR1和Boost

TR1是對C++標準庫的一次擴充; Boost是備用標準庫;          TR1("Technical Report 1")是一份規範,描述加入C++ 標準程序庫的諸多新機能。這些機能以新的class templates和fun

原创 Linux下源碼安裝軟件

在linux下的很多軟件都是通過源碼包方式發佈的,這樣做對於最終用戶而言,雖然相對於二進制軟件包,配置和編譯起來繁瑣點,但是它的可移植性卻好得多,針對不同的體系結構,軟件開發者往往僅需發佈同一份源碼包,不同的最終用戶經過編譯就可以正確運行

原创 hard link與symbolic link區別

            Linux下的文件組織方式是每個文件都佔用一個inode,inode中存放有文件的權限信息、block信息等,可以理解爲索引文件系統,通過inode索引到對應的block,即讀取文件。          hard

原创 計數排序C++實現

//counting sort //計數排序基於一個假設,待排序數列的所有數均出現在(0,k)的區間之內,如果k過大則會引起較大的空間複雜度 //計數排序並非是一種基於比較的排序方法,它直接統計出鍵值本應該出現的位置 //時間複雜度爲O(

原创 快速排序算法C++實現

//quick sort //STL中也有現成的快速排序算法,內部實現採用了以下技巧 //1)樞軸的選擇採取三數取中的方式 //2)後半段採取循環的方式實現 //3)快速排序與插入排序結合 #include<vector> #includ

原创 希爾排序C++實現

//shell sort //希爾排序是一種對直接插入排序的改進方法, //使用直接插入排序對於一個基本有序的數列進行排序時,內部循環的次數會明顯減少,因此可以減小時間複雜度; //希爾排序就是先使數列基本有序,然後再直接插入排序,減小插

原创 堆排序C++實現

//heap sort //堆排序可以分爲兩個過程,其一是建堆,其二是出堆 //堆是一種完全二叉樹,所以它可以用數組進行存儲; //堆可分爲最大堆和最小堆,最大堆指任一節點的值都大於其左右孩子節點的值,最小堆自不必說; //STL中有

原创 設計模式之一簡單工廠模式

根據用戶需求實例化不同對象。 //simple factory model #include<iostream> using namespace std; //用一個單獨的類來做這個創造實例的過程,即工廠 class Opera

原创 基數排序C++實現

基數排序介紹 基數排序(Radix Sort)是桶排序的擴展,它的基本思想是:將整數按位數切割成不同的數字,然後按每個位數分別比較。 具體做法是:將所有待比較數值統一爲同樣的數位長度,數位較短的數前面補零。然後,從最低位開始,依次進行一

原创 桶排序C++實現

//bucket sort //現在假設我有一堆蛋,包括麻雀蛋、雞蛋、恐龍蛋,現在我要將這幾種蛋排序下序; //有點常識就知道,這三種類別的蛋大小是不一樣的,而且每一類蛋的大小也是有區別的,現在我對這三種蛋進行排序,我是這樣排的: //準

原创 歸併排序C++實現

//merge sort //歸併排序是通過將兩個有序的數列合併成一個有序的數列的排序過程; //具體流程可以看成一個樹形結構,最底層是兩個結點合併,往上合併的結點個數越多,所以時間複雜度爲O(nlgn); #include<ios

原创 lib和dll的區別

共有兩種庫: 一種是LIB包含了函數所在的DLL文件和文件中函數位置的信息(入口),代碼由運行時加載在進程空間中的DLL提供,稱爲動態鏈接庫dynamic link library。 一種是LIB包含函數代碼本身,在編譯時直接將代碼加入