原创 折半插入排序

相比起直接插入排序,折半插入排序減少了關鍵字的比較次數,而記錄的移動次數不變,因此折半插入排序的時間複雜度仍然爲O(n^2) 穩定性:穩定 void BInsertSort(int a[], int size) { int i, j

原创 chmod (linux 賦予權限)

sudo chmod XXX dir_name chmod 0755 /tmp //這個只設置/tmp文件夾權限爲0755 chmod -R 0755 /tmp //這個設置/tmp文件夾及其子文件夾的權限爲0755 X XX

原创 設計模式(二)職責鏈模式 C++

行爲型設計模式一共有12個,下面介紹下第一個:職責鏈模式,它是對象行爲型模式 一、意圖:     職責鏈模式:使得很多對象都有機會處理請求,從而避免請求發送者和接收者之間的耦合關係。 將這些對象形成 一條鏈,沿着這條鏈處理請求,之道有一個

原创 23 種設計模式C++實現

設計模式的分類 總體來說設計模式分爲三大類: 創建型模式,共五種:單例模式、原型模式、工廠方法模式、抽象工廠模式、建造者模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行爲型模式,共

原创 qt根據不同的操作系統引用不同的庫文件

qt 程序 #ifdef Q_OS_WIN32 // win #include <synchapi.h> #else #include <unistd.h> #endif   點贊 收藏 分享

原创 設計模式(六)策略模式C++

策略模式定義一系列的算法,把它們一個個封裝起來,並且使它們可相互替換。該模式使得算法可獨立於使用它的客戶而變化。 策略模式爲了適應不同的需求,只把變化點封裝了,這個變化點就是實現不同需求的算法,但是,用戶需要知道各種算法的具體情況。就像加

原创 單鏈表實現

心血來潮又實現了一遍單鏈表,加深了下對鏈式存結構的理解。 頭結點:爲了操作方便,在單鏈表的第一個結點之前附加一個結點,稱爲頭結點。頭結點的數據域可以存儲數據標題、表長等信息,也可以不存儲任何信息,其指針域存儲第一個結點的首地址 頭插法:將

原创 配置放到開發板裏,出現亂碼

      自己寫好的配置放到開發板裏面,還沒有啓動自己的應用程序,我把配置拷貝到Windows下,發現內容變成了就是一堆亂碼。 咋回事?      我從看到了linux下別的正常的配置,vi進去,輸入set fileencoding

原创 設計模式(十五)裝飾模式 C++

意圖:動態地給一個對象添加一些額外的職責。就增加功能來說,裝飾器模式相比生成子類更爲靈活。 好處就是把核心功能和裝飾功能區分開來了 (要想真正理解裝飾模式的代碼實現,首先要理解多態的實現) 裝飾模式主要包含以下角色。 抽象構件(Compo

原创 設計模式(十六)組合模式 C++

組合模式(Composite Pattern),又叫部分整體模式,是用於把一組相似的對象當作一個單一的對象。組合模式依據樹形結構來組合對象,用來表示部分以及整體層次。 組合模式包含以下主要角色。 抽象構件(Component)角色:它的主

原创 簡單解釋下內存碎片

        對於內置的類型,malloc和new的作用是相同的,分配的都是連續的空間。 首先申請了一塊大小爲5的內存,命名爲A,接着申請了大小爲10的內存,命名爲B 。現在我釋放了A, 再申請20個內存塊。由於之前A的內存塊不滿足要求

原创 設計模式(三)命令模式 C++

命令模式:將“請求”封裝成對象,以便使用不同的請求、隊列或者日誌來參數化其他對象。命令模式也支持可撤銷的操作。 命令(Command):爲所有命令聲明瞭一個接口。調用命令對象的 execute()方法,就可以讓接收者進行相關的操作。這個接

原创 直接插入排序算法

插入排序算法是所有排序方法中最簡單的一種算法,其主要的實現思想是將數據按照一定的順序一個一個的插入到有序的表中,最終得到的序列就是已經排序好的數據。 直接插入排序是插入排序算法中的一種,採用的方法是:在添加新的記錄時,使用順序查找的方式找

原创 設計模式(五)抽象工廠 C++

每一個設計模式的產生都是 爲了應對某些應用場景。         簡單工廠可以由一個工廠生產不同的產品,缺點是如果不斷增加產品,則需要不斷修改工廠,違反了開放封閉原則,(類、模塊、函數可以擴展,但是不可以修改)。         於是,就

原创 設計模式六大原則

1.開閉原則。 一個軟件實體,如類,模塊和函數應該對外擴展開發,對內修改關閉。 解讀:用抽象構建框架,用實現擴展細節。不以改動原有類的方式來實現新需求,而是應該以實現事先抽象出來的接口(或具體類繼承抽象類)的方式來實現。 優點:開閉原則的