原创 【排序算法】總結

轉載來自於:九大排序算法再總結 轉載來自於:排序算法總結 排序的定義: 輸入:n個數:a1,a2,a3,...,an 輸出:n個數的排列:a1',a2',a3',...,an',使得a1'<=a2'<=a3'<=...<=an'。 I

原创 【C Primer Plus 第六版】筆記

1.  使用const 代替 #define 定義常量 原因:(1)const 聲明顯示指明瞭類型;(2)const可以很方便的用於複合類型,比如是數組等;(3)作用域規則,const可以創建爲全局,名稱空間以及數據塊的常量。 2. 使用

原创 STL中map/vector的刪除元素操作

    在我們使用C++中的STL的時候,可以使用迭代器iterator進行遍歷,但是當我們通過iterator對vector和map刪除元素的時候,要格外的小心,往往操作不當,導致iterator失效,後果就是程序奔潰。     1.

原创 C++之重寫String類

C++之重寫String類        有時候聽完課程,不一定就能夠領悟,所以還是要多加練習,今天在聽了老師講的C++關於類的構造函數,默認構造函數,類的拷貝函數(淺拷貝/深拷貝),類的析構函數,以及運算符的重載。感覺在課堂是聽懂了,但

原创 C++安全函數之strcat_s

1.必須包含的頭文件:<string.h> 2.函數申明: errno_t strcat_s( char *strDestination, size_t numberOfElements, const char *st

原创 探討C++中對象的“淺拷貝”與“深拷貝”

C++中對象的複製就如同“克隆”,用一個已有的對象快速地複製出多個完全相同的對象。一般而言,以下三種情況都會使用到對象的複製: (1)建立一個新對象,並用另一個同類的已有對象對新對象進行初始化,例如: class Rect {

原创 【排序算法】堆排序

參考來自:堆排序及分析 package sort.algorithm.heap; public class Heap { // 堆排序,它組合了歸併排序的時間效率和快速排序的控件效率。和歸併排序一樣,堆排序 // 的最差情況運行時間

原创 Enterprise Architect初步入門

最近在學習設計模式的時候,發現要會畫UML圖是很有必要的,所以要系統的學習一下UML建模工具Enterprise Architect的使用。 1. 下載安裝: 官方網站:http://www.sparxsystems.cn/ 裏面有試用版

原创 C++安全函數之strcpy_s

C++安全函數之strcpy_s 1.  必須包含的頭文件:<string.h> 2.  函數聲明: errno_t strcat_s( char *strDestination, size_t numberOfEle

原创 【數據結構】圖

轉載來自:數據結構之圖 一、基本術語 圖:由有窮、非空點集和邊集合組成,簡寫成G(V,E); Vertex:圖中的頂點; 無向圖:圖中每條邊都沒有方向; 有向圖:圖中每條邊都有方向; 無向邊:邊是沒有方向的,

原创 namespace在大型項目中的使用

namesapce命名空間        namesapce命名空間是在大型項目開發中,爲了避免命名衝突而引入的一種機制,比如說,在一個大型項目中,要用到多家軟件開發商提供的類庫。在事先沒有約定的情況下,兩套類庫可能存在同名的函數或者

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

    希爾排序--不需要大量的輔助空間,和歸併排序一樣容易實現。希爾排序是基於插入排序的一種算法, 在此算法基礎之上增加了一個新的特性,提高了效率。     先取一個小於n的整數d1作爲第一個增量,把文件的全部記錄分組。所有距離爲d1

原创 C語言之memset函數的使用

轉自:老生常談,正確使用memset 本文歸納了下使用memset幾個需要注意的地方,雖然內容很簡單,但也希望對大家有所幫助。 1. memset是以字節爲單位,初始化內存塊。 當初始化一個字節單位的數組時,可以用memset把每

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

package sort.algorithm.merg; public class Merg { // 歸併算法--劃分解決排序 // 歸併排序的最壞情況運行時間、平均情況運行時間以及最好情況運行時間都是O(nlogn) // 歸

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

冒泡排序算法的運作如下:(從後往前)  比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。  對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所有的元素重複以上的步驟,除