1.Divide the problem(instance) into one or more sub-problem;
2.Conquer each sub-problem recursively;
3.Combine solutions.
Given n elements in array, find kth smallest element (element of rank k) Worst-case linear time order statist
Quick Sort --Divide and Conquer --Sorts “in place” --Very practical with tuning Divide and Conquer: 1.Divide: Partitio
第七章 圖 Graph 7.1 圖的定義和術語 頂點 Vertex V 是頂點的有窮非空集合,頂點數 |V| = n VR 兩個頂點之間關係的集合,邊數 |VR| = e 有向圖 Digraph <v, w> Arc v Tail
串的定義:零個或多個字符組成的有限序列,又稱字符串。 1.串的比較 比較字符串之間的ASCII碼的大小, 比如s="happy",t="happen",因爲前面4個字母相同,所以比較第五位的字母的ASCII碼值, y的ASCII碼值是
目錄 1.棧的定義 2.隊列的定義 1.棧的定義 1.1棧是限定僅在表尾進行插入和刪除操作的線性表 我們把允許插入和刪除的一端稱爲棧頂(線性表的表尾),另一端稱爲棧底,不含任何元素的棧稱爲空棧。棧又稱後進先出的線性表,簡稱LIFO結
目錄 1.初步接觸算法 2.算法的定義 3.算法的時間及空間複雜度 1.初步接觸算法 正常情況下,要算1~100相加的值,一般程序員第一想法都是 for循環相加算出結果,這也是一種算法 但是說到 高斯求和算法 可能不少的程序員都知道這個算
目錄 1.線性表的定義 2.線性表的順序存儲結構 3.線性表的鏈式存儲結構 3.1 線性錶鏈式存儲結構定義: 3.2 單鏈表的操作 3.4 靜態鏈表 3.5 循環鏈表 3.6 雙向鏈表 1.線性表的定義 零個或多個數據元素的有限
圖是由頂點和邊或弧兩部分來組成,所以分兩個結構來分別存儲。 1、鄰接矩陣 圖的鄰接矩陣存儲方式是用兩個數組來表示圖。一個一維數組存儲圖中頂點信息,一個二維數組(稱爲鄰接矩陣)存儲圖中的邊或弧的信息。 無向圖的邊數組是一個對稱矩陣。有了這個
描述 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 輸入: "babad" 輸出: "bab"(注意: "aba" 也是一個有效答案。) 輸入: "cbbd" 輸出: "bb"
KMP算法 詳解找來找去感覺還是這兩篇解釋的很好 KMP算法(1):如何理解KMP KMP算法(2):其細微之處 筆記 next[i]=j,即模式串p[1-i]的最長的相同真前後綴的長度 #include "stdafx.h"
AOE網 1.介紹 定義:在帶權有向圖中,以頂點表示事件,有向邊表示活動,邊上的權值表示完成該活動的開銷,則稱這種有向圖爲用邊表示活動的網絡,簡稱爲AOE網(Activity On Edge Network) 性質: 只有在某頂
在上一篇關於二叉搜索樹的筆記中,我自己實現了幾個常用的有關BST的成員函數。其中刪除指定結點的函數十分複雜,還要考慮被刪結點的三種可能的情況。 其實,還有另外一種思路來實現刪除結點這一操作。 假設我們要刪除的結點是u,可以發現,如果被刪結
所有考試都已經結束,是時候好好學習數據結構,前些日子學了數據結構的線性表和隊列就開始準備期末考,現在要把剩下的內容好好補上。一些相對簡單的內容就不在博客上記錄,把一些複雜的,自己有思考的內容記錄在博客上。 空雙向鏈表 帶頭結點