原创 C++版本 非遞歸 --- 二分查找

二分查找思想: 1、數組是有序的,比例按從小到大排序; 2、查找的key每次和中間值比較,如果key小於mid 查找mid左側的數組部分;如果key大於mid,則查找mid右側的數組部分;如果相等,則直接返回mid。 輸入:排序數

原创 select poll epoll

一、使用方面: 1 select函數通過三個fd_set結構體變量分別給內核傳遞用戶關注的所有可讀、可寫、異常事件,這使得select不能、 處理更多的事件類型,並且內核也通過這三個結構體變量返回就緒的文件描述符,所

原创 重載、覆蓋、隱藏的區別

原文鏈接:https://blog.csdn.net/hexi_2000/article/details/4392107 版權聲明:本文爲博主原創文章,遵循 CC 4.0 by-sa 版

原创 有兩個數組,裏邊存儲的數據是有序的,求兩個數組中的中位數(不允許使用擴容機制,不允許在創建一個數組)

有兩個數組,裏邊存儲的數據是有序的,求兩個數組中的中位數(不允許使用擴容機制,不允許在創建一個數組) ![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20190824163616609.png?x

原创 八大排序-快排

快排是速度最快的排序,時間複雜度爲O(logn),空間複雜度O(logn),不穩定 #include <stdio.h> #include <stdlib.h> #include <time.h> void Show(int *a

原创 C++STL

C++標準模板庫提供三種順序容器:vector,list和deque。vector類和deque類是以數組爲基礎的,list類是以雙向鏈表爲基礎的。 矢量(vector)類提供順序表。下標運算符[ ] 有效。矢量的內存用盡時,矢

原创 C++設計模式---單例模式

單例模式的核心結構中只包含一個被稱爲單例的特殊類。通過單例模式可以保證系統中 一個類只有一個實例,即一個類只有一個對象實例。 版本一:使用懶加載(快加載),只有在使用時才實例化 class Singleton { public

原创 設計模式 --- 觀察者模式( Observer 模式 )

監聽者 處理事件 觀察者 觀察事件 通知感興趣的監聽者取處理事件 從定義上看:觀察者模式 是當對象間存在一對多關係時,則使用觀察者模式 ,比如,當一個對象被修改時,則會自動通知它的依賴對象。觀察者模式 屬於 行爲型模式。 其實,我

原创 八大排序---排序算法比較總結

排序名稱:直接插入排序(insertsort) 時間複雜度:O(n平方) 時間複雜度備註:若查找時從前往後找,最好的情況(1 2 3 4 5),時間複雜度還是O(n平方),因爲在查找合理位置的時候找的次數太多,所以改進方法是找合理

原创 設計模式---工廠模式

工廠模式分爲三種: 1、簡單工廠模式 所有的產品由一個工廠生產 就是工廠產產品,一個工廠可以產多種產品 工廠模式屬於創建型模式,是C++中最常見的設計模式之一。在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,並且是通過使用

原创 力扣練習題----兩數相加

給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除了數字 0 之

原创 C---歸併排序

合併排序(MERGE SORT)是又一類不同的排序方法,合併的含義就是將兩個或兩個以上的有序數據序列合併成一個新的有序數據序列,因此它又叫歸併算法。它的基本思想就是假設數組A有N個元素,那麼可以看成數組A是又N個有序的子序列組成

原创 C++對象的生存週期

對應下面的代碼和解析來學習這節知識,代碼都是可運行的,在VS2012中就可以 #include using namespace std; #pragma warning(disable:4996); /* 1.對象的生存週期 */

原创 New和malloc的區別

轉載於http://blog.sina.com.cn/s/blog_6fc5bfa90100qgd7.html 1,malloc與free是C++/C語言的標準庫函數,new/delete是C++的運算符。它們都可用於申請動態內存和釋