原创 彙編代碼,小括號和中括號

編譯時添加編譯條件 –masm=intel, 或者–masm=att,會生成Intel格式或者AT&T格式的代碼;在Intel格式中使用[], 而AT&T格式則不一樣。 比如: AT&T: -4(%ebp)

原创 彙編代碼,傳遞指針給函數

一. 如果傳遞指針給函數 long cread(long *p){ long result = *p; return result; } visual studio得到的彙編代碼: long result

原创 C語言 冒泡排序

冒泡排序簡介 實現過程 第一種 第二種 代碼實現 代碼精簡 冒泡排序簡介 冒泡排序的基本操作就是將重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,時間複雜度爲O(n^2

原创 C語言 紅黑樹

紅黑樹簡介 實現過程 代碼實現 紅黑樹簡介 紅黑樹是每個節點都帶有顏色屬性的二叉查找樹,顏色或紅色或黑色。 紅黑樹的模擬過程可以看鏈接:InsertSortion 紅黑樹有五個性質: 性質1. 節點

原创 使用位運算實現有符號的十進制正負數轉二進制輸出

使用位運算實現有符號的十進制正負數轉二進制,C語言 代碼: #include <stdio.h> //十進制數轉二進制 void moveBinaryNum(unsigned int x){ int a = x >> 1

原创 C語言 歸併排序

歸併排序簡介 實現過程 代碼實現 歸併排序簡介 歸併排序(MERGE-SORT)是建立在歸併操作上的一種有效的排序算法,該算法是採用分治法(Divide and Conquer)的一個非常典型的應用,時

原创 C語言 二叉搜索樹

二叉搜索樹簡介 實現過程 個人分析 實現過程 二叉搜索樹簡介 二叉查找樹(Binary Search Tree),(又:二叉搜索樹,二叉排序樹)它或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的

原创 C語言 插入排序

插入排序簡介 實現過程 第一種 第二種 代碼實現 個人分析 代碼精簡 插入排序簡介 插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,算法適用於少

原创 C語言 AVL樹

AVL樹簡介 實現過程 代碼實現 AVL樹簡介 AVL樹的基本操作一般涉及運做同在不平衡的二叉查找樹所運做的同樣的算法。但是要進行預先或隨後做一次或多次所謂的”AVL 旋轉”。 AVL樹的模擬過程可以

原创 C語言 拓補排序 有向無環圖

拓補排序簡介 實現過程 代碼實現 拓補排序簡介 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊(u,

原创 C語言 單詞查找樹 Trie樹

單詞查找樹簡介 代碼實現 單詞查找樹簡介 Trie樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計,排序和保存大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。它的優點是:利用

原创 C語言 確定有限狀態自動機 DFA

確定有限狀態自動機簡介 實現過程 實現分析 代碼實現 確定有限狀態自動機簡介 有限狀態自動機擁有有限數量的狀態,每個狀態可以遷移到零個或多個狀態,輸入字串決定執行哪個狀態的遷移。 DFA是理解KMP算法的基礎

原创 C語言 Prim算法和Kruskal算法的實現和證明

最小生成樹簡介 原理 Prim算法 算法實現 算法證明 代碼實現 1 代碼實現 2 Kruskal算法 算法實現 算法證明 代碼實現 最小生成樹簡介 最小生成樹(MST):給定一加權無向圖,找出它的一顆最

原创 C語言 union-find算法 圖的連通性

連通分量 代碼實現 ADT quick-find算法 quick-union算法 quick-find和quick-sort的完整代碼 連通分量 任何連通圖的連通分量只有一個,即是其自身,非連通的無向圖有多個連通

原创 C語言 哈希表

哈希表簡介 哈希函數 哈希衝突 拉鍊法 代碼實現 線性探測法 代碼實現 哈希表簡介 散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。 哈希函