資料結構與演算法總結

2021-10-10 14:01:41 字數 1869 閱讀 2499

class

solution

return;}

};

void

bubblesort

(vector<

int>

&arr)}if

(!flag)

break;}

}

void

selectsort

(vector<

int>

&arr)

if(minpos!=i)

swap

(arr[minpos]

,arr[i]);

}}

void

insertsort

(vector<

int>

&arr)

arr[j+1]

=tmp;

}}

void

shellsort

(vector<

int>

&arr)

arr[j+gap]

=tmp;

} gap/=3;

}}

void

merge

(vector<

int>

&arr,

int left,

int mid,

int right)

while

(p<=mid)

tmp[i++

]=arr[p++];

while

(q<=right)

tmp[i++

]=arr[q++];

for(

int j=left;j<=right;j++

) arr[j]

=tmp[j-left];}

void

mergesort

(vector<

int>

&arr,

int left,

int right)

}

void

quicksort

(vector<

int>

&arr,

int left,

int right)

arr[low]

=pivot;

quicksort

(arr,left,low-1)

;quicksort

(arr,low+

1,right);}

}

#

include

using

namespace std;

//大頂堆

class

heap

//上浮

voidup(

int k)

}//下沉,最重要的函式(必會)

void

down

(int k)

}void

createheap()

void

heapsort()

}void

print()

};intmain()

make-set:把每個結點的父結點置為自身,相當於自己是乙個集合

find:向上找到最終父結點

union:讓乙個最終父結點指向另外乙個最終父結點實現合併

統計有多少個連通分量:計算有多少個結點的parent為自身即可。

優化策略:並查集的兩種啟發式策略優化

例題:還是得靠刷題

資料結構與演算法總結

本教材共十一章 第一章為資料結構與演算法概述,為本書學習基礎和預備知識。資料的邏輯結構是對資料之間關係的描述,有時就把邏輯結構簡稱為資料結構。邏輯結構形式地定義為 k,r 或 d,s 其中,k是 資料元素的有限集,r是k 上的關係的有限集。邏輯結構有四種基本型別 集合結構 線性結構 樹狀結構和網路結...

資料結構與演算法 排序演算法總結

排序演算法 1 冒泡 對資料的有序性 敏感,一旦排序完成就會 立刻停止,如果待排序的資料是基本有序的,他的排序效率是非常高的。也是實現最簡單的排序,不易出錯,安全性高。2 插入 在已經有序的資料中,新增新的資料,對這個組資料再進行排序比較適合插入排序。3 選擇 是氣泡排序的變種,不是正統的排序方法,...

資料結構與演算法 排序演算法總結

前言 這是我考研時根據率輝老師的 高分筆記 總結的。名稱 空間複雜度 最好情況下時間複雜度 最差情況下時間複雜度 穩定性直接插入排序 o 1 已經有序,雙層迴圈變為單層,o n o n2 穩定希爾排序 o 1 無o n2 不穩定氣泡排序 o n 已經有序,o n o n2 穩定快速排序 o log2...