演算法導論第二章

2022-08-13 19:18:17 字數 1699 閱讀 1585

插入排序原始碼:

1 #include 2 #include 3

4using

namespace

std;56

void insert_sort(inta)7

17 a[i+1]=key;18}

19}2021

intmain()

22

view code

逆序輸出:

1 #include 2 #include 3

4using

namespace

std;56

void insert_sort(inta)7

17 a[i+1]=key;18}

19}2021

intmain()

22

view code

分治法:合併排序

對於兩堆以排好序的,最底層的執行邏輯:

1 #include 2 #include 3

#define inf 1e9

4using

namespace

std;56

void merge_sort(int a,int p,int q,intr)7

26else

2731}32

}333435

intmain()

36

view code

一般性原始碼:

1 #include 2 #include 3

4#define inf 1e956

using

namespace

std;78

void merge_sort(int a,int p,int q,intr)9

28else

2933}34

}3536void merge_sort(int a,int p,int

r)37

4546

intmain()

47

view code

不設定哨兵

1 #include 2 #include 345

using

namespace

std;67

void merge_sort(int a,int p,int q,intr)8

27else

2832}33

if(i==n1)

3439}40

if(j==n2)

4146}47

}4849void merge_sort(int a,int p,int

r)50

5859

intmain()

60

view code

利用歸併排序求逆序數

1 #include 2 #include 3

#define inf 1e945

using

namespace

std;

6int

cnt;78

void merge_sort(int a,int p,int q,intr)9

29else

3035}36

}3738void merge_sort(int a,int p,int

r)39

4748

intmain()

49

view code

演算法導論 第二章作業

作業2.1 2 template void insert t a,int n a i 1 key 2.1 3 template void find t a,int n,t v if i 1 v nil 迴圈不變式 初始化 i 1,v還沒和任何a陣列中的元素比較,所以是 1,它為真。保持 如果j迴圈到...

演算法導論第二章筆記

這一章首先以乙個插入排序演算法開始,以此為切入點分析演算法。書上以偽 來介紹演算法,但是在這裡我基本上會用c語言實現一遍,並用自己的語言複述一遍演算法的思想。首先附上插入排序的具體實現。void insert sort eletype arr int start int end arr j 1 te...

演算法導論第二章 練習2 1 4

二進位制相加問題 題幹書上有,此處省略!分析 此處貼上 僅供參考 includevoid line int number1,int number2,int number3 int main void int number2 10 int number3 11 line number1,number2...