原创 Linux--進程間通信總結

管道 管道也叫匿名管道(pipe),是一種半雙工的通信方式,數據只能單向流動。如果要進行雙工通信,需要建立兩個管道。管道只能在具有親緣關係的進程間使用,例如父子進程或兄弟進程。 管道的特點: 單向通信。 依賴文件系統。管道的

原创 詳解C++類中的6個默認成員函數

構造函數 定義 成員變量爲私有的,要對他們進行初始化,必須用一個共有成員函數來進行。同時這個函數應該有且僅在定義對象時自動執行一次,這時調用的函數稱爲構造函數(constructor)。 特徵: 函數名與類名相同。 無返回值。 對象構造

原创 【排序算法】:堆排序

介紹 堆排序(Heapsort)是指利用堆積樹(堆)這種數據結構所設計的一種排序算法,它是選擇排序的一種。可以利用數組的特點快速定位指定索引的元素。堆分爲大根堆和小根堆,是完全二叉樹。大根堆的要求是每個節點的值都不大於其父節點的值,即A[

原创 【排序算法】:計數排序

思路: 設被排序的數組爲A,排序後存儲到B,C爲臨時數組。所謂計數,首先是通過一個數組C[i]計算大小等於i的元素個數,此過程只需要一次循環遍歷就可以;在此基礎上,計算小於或者等於i的元素個數,也是一重循環就完成。下一步是關鍵:逆序循環

原创 【排序算法】:歸併排序

介紹 歸併排序(MERGE-SORT)是建立在歸併操作上的一種有效的排序算法,該算法是採用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有

原创 【排序算法】:快速排序

介紹 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以

原创 【排序算法】:直接插入排序

介紹 思想:每次從無序表中取出第一個元素,把它插入到有序表的合適位置,使有序表仍然有序。 實現原理:第一趟比較前兩個數,然後把第二個數按大小插入到有序表中; 第二趟把第三個數據與前兩個數從後向前掃描,把第三個數按大小插入到有序表中;依次

原创 【排序算法】:九大排序算法總結

直接插入排序 參考博客:【排序算法】:直接插入排序 時間複雜度: 平均情況:O(N^2) 最好情況:O(N) 最壞情況:O(N^2) 空間複雜度:O(1) 穩定性:穩定 希爾排序 參考博客:【排序算法】:希爾排序 時間複雜度:

原创 【排序算法】:冒泡排序

介紹 原理:(升序) 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所有的元素重複以上的步驟,除了最後一個。 持續每次對越

原创 模擬實現strstr函數

strstr 函數簡介 函數原型: char *strstr( const char *string, const char *strCharSet ); 函數功能:搜索一個字符串在另一個字符串中的第一次出現。 返回值:若strChar

原创 【排序算法】:希爾排序

介紹 希爾排序是一種插入排序算法,它出自D.L.Shell,因此而得名。Shell排序又稱作縮小增量排序。 原理圖: 思想:先取一個小於n的整數d1作爲第一個增量,把文件的全部記錄分成d1個組。所有距離爲dl的倍數的記錄放在同一個

原创 【排序算法】:基數排序

定義 基數排序(radix sort)屬於“分配式排序”(distribution sort),又稱“桶子法”(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達到排序的

原创 shell基本語法及實現彩色進度條

基本語法 條件測試:test [ 條件測試test或[可以測試一個條件是否爲真。如果測試結果爲真,則該命令的退出碼爲0,如果測試結果爲假,則命令的退出碼爲1(注意與C語言的邏輯表示正好相反)。 例如:測試兩個數的大小關係 其中:

原创 strchr、strrchr、memchr函數詳解及模擬實現

strchr 函數介紹 函數原型: char* strchr(const char* string,int c); 函數功能:在字符串中查找指定字符的第一個出現 返回值:如果成功,返回該字符以及其後面的字符,如果失敗,則返回 NULL。

原创 strdup詳解和模擬實現

strdup 函數介紹 函數原型: char* strdup(const char* str) 函數功能:將串拷貝到新建的位置處 返回值:返回一個指針,指向爲複製字符串分配的空間;如果分配空間失敗,則返回NULL值。 注意:strdu