圖
完全圖:
在無向圖中,若每對頂點之間都有一條邊相連,則稱該圖為完全圖(complete graph)。
在有向圖中,若每對頂點之間都有兩條有向邊相互連線,則稱該圖為完全圖。
鄰接矩陣:兩個結點之間有連線則為1,沒有則為0.有n個結點,就需要一張n*n的矩陣(可以用上三角或下三角儲存資料)。
鄰接表:
圖的遍歷:
拓撲序列:
圖的最小生成樹-克魯斯卡爾演算法
1.通過結點數求出需要畫幾條線(n個結點需要畫n-1條線)
2.在結點之間選線,從權(數值)小的開始選,一旦出現環路,放棄該線
演算法基礎
演算法的特性:
有窮性:執行有窮步之後結束
確定性:演算法中每一條指令都必須有確切的指令,不能含糊不清
輸入(>=0)
輸出(>=1)
有效性:演算法的每個步驟都能有效執行並能得到確定的結果。例如a=0,b/a就無效。
演算法的複雜度(時間複雜度[常考上下午],空間複雜度)
查詢
順序查詢:
思想:將待查詢的關鍵字為key的元素從頭到尾與表中元素進行比較,如果中間存在關鍵字為key的元素,則返回成功;否則,返回失敗。
查詢成功時,順序查詢的平均查詢長度為(等概率情況下):
asl=(n+1)/2
時間複雜度:o(n)
二分查詢法:
雜湊表排序(重中之重,下午程式設計會考)
排序的概念
穩定與不穩定排序,內排序與外排序(記憶體與外部儲存空間)
排序方法的分類
插入類排序(直接插入排序,希爾排序)
交換類排序(氣泡排序,快速排序)
選擇類排序(直接選擇排序,堆排序)
歸併排序
基數排序
直接插入排序:
希爾排序
直接選擇排序:
堆排序:
氣泡排序:
快速排序:
歸併排序:
基數排序:
排序效能比較:
python資料結構與演算法第六天
搜尋歸併排序是採用分治法的乙個非常典型的應用。歸併排序的思想就是先遞迴分解陣列,再合併陣列。將陣列分解最小之後,然後合併兩個有序陣列,基本思路是比較兩個陣列的最前面的數,誰小就先取誰,取了後相應的指標就往後移一位。然後再比較,直至乙個陣列為空,最後把另乙個陣列的剩餘部分複製過來即可。def merg...
學習資料結構的第六天 棧
棧 棧是乙個先入後出的有序列表 根據棧的定義,最先放入棧中的元素放在棧底,刪除最先刪除的是棧頂元素。棧的應用 子程式的呼叫,處理遞迴呼叫,表示式的轉換,二叉樹的遍歷 用陣列模擬棧 思路 定義乙個top表示棧頂,初始化為 1 入棧的時候,有資料加入時,top stack top data 出棧的操作 ...
軟考之資料結構
第一部分 資料結構 下面是我自己畫的一張圖,先來個巨集觀的掌握,先知道資料結構有什麼,然後在一一攻破。資料結構是軟考的難點,再加上我們即將到來的自考也會涉及到,要好好重視起來。這裡有乙個疑問,關於陣列是不是線性結構的問題,個人愚見,多維陣列屬於非線性結構。希望大家斧正。到後面我會用 號的多少來說明考...