一般語言自帶的常用資料結構:(不用語言的對應資料結構名稱可能有所差異)
雜湊(hash table)。需要掌握以下基礎知識:
雜湊表(hashmap/ dict/ unordered_map等)。
棧(stack)
佇列(queue)
堆(heap)
一般語言不自帶的資料結構:(需要自己手工建立)
二叉樹(binary tree)
二叉搜尋樹(二叉查詢樹、binary search tree、bst)
簡單圖(graph)
應該掌握的入門演算法:
排序演算法:
二分法:
寬度優先遍歷(寬度優先搜尋、breadth first search、bfs):
深度優先遍歷(深度優先搜尋、depth first search、dfs):
演算法 基礎知識
插入排序法示例 將想要插入的值搜尋找到合適的位置,之前的數值一一向後移動乙個位置,騰出乙個空位置給想要插入的數值。偽 instert sort a for j 2 to a.length key a j i j 1 while i 0 and a i key a i 1 a i i i 1 a i ...
演算法基礎知識
o 1 稱為不變複雜性 1項 1秒 10項 1秒 100個專案 1秒 專案的數量仍然增加10倍,但o 1 的比例因子總是1。o log n 稱為對數複雜度 1項 1秒 10項 2秒 100項 3秒 1000項 4秒 10000項 5秒 計算次數只會增加輸入值的對數。因此,在這種情況下,假定每個計算需...
演算法基礎知識
一 插入排序 撲克牌原理 n 2 原址 a 1,n 1 是排好序的,把第n個往前 二 分治法 歸併 nlgn 非原址 先分解 sort a,p,r if pa or b 三 分治法 最大子陣列問題 描述 尋找a的和最大的非空連續子陣列 解決 按中點分成兩段,遞迴找左右段各自的最大段,再找跨越中點的最...