軟考筆記第六天之資料結構與演算法基礎(二)

2022-09-15 22:54:25 字數 2013 閱讀 4732

完全圖:

在無向圖中,若每對頂點之間都有一條邊相連,則稱該圖為完全圖(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 出棧的操作 ...

軟考之資料結構

第一部分 資料結構 下面是我自己畫的一張圖,先來個巨集觀的掌握,先知道資料結構有什麼,然後在一一攻破。資料結構是軟考的難點,再加上我們即將到來的自考也會涉及到,要好好重視起來。這裡有乙個疑問,關於陣列是不是線性結構的問題,個人愚見,多維陣列屬於非線性結構。希望大家斧正。到後面我會用 號的多少來說明考...