基本演算法 5 插入排序 快速排序和歸併排序

2021-10-03 21:06:39 字數 2798 閱讀 7446

#include

using

namespace std;

template

<

class

t>

void

insertionsort

(t *a,

int n)

;template

<

class

t>

void

insertionsort_2

(t* a,

int n)

;template

<

class

t>

void

insert

(const t& e, t* a,

int i)

;int

main()

;double y=

;//第乙個元素不算在排序陣列中

insertionsort

(x,10);

insertionsort_2

(y,5);

for(

int i =

0; i <

10; i++

) cout << x[i]

<<

" ";

cout << endl;

for(

int i =

1; i <

5; i++

) cout << y[i]

<<

" ";

cout << endl;

return0;

}template

<

class

t>

void

insertionsort

(t* a,

int n)

a[in]

= temp;}}

template

<

class

t>

void

insertionsort_2

(t* a,

int n)

a[i + 1] = temp;*/}}

template

<

class

t>

void

insert

(const t& e, t* a,

int i)

a[i +1]

= e;

}

#include

using

namespace std;

template

<

class

t>

void

quicksort

(t* a,

const

int left,

const

int right)

while

(i < j)

;swap

(a[left]

, a[j]);

//j現在為中間位置

quicksort

(a, left, j -1)

;quicksort

(a, j +

1, right);}

}int

main()

;double b=

;quicksort

(a,0,9

);quicksort

(b,0,2

);for(

int i =

0; i <=

9; i++

) cout << a[i]

<<

" ";

cout << endl;

for(

int i =

0; i <=

2; i++

) cout << b[i]

<<

" ";

return0;

}

將兩個已經排序好的陣列歸併到乙個排序好的陣列裡。

#include

#include

//copy演算法的庫

using

namespace std;

template

<

class

t>

void

mergesort

(t* initlist, t* mergelist,

const

int l,

const

int m,

const

int n)

else

}copy

(initlist + i1, initlist + m +

1, mergelist + iresult)

;copy

(initlist + i2, initlist + n +

1, mergelist + iresult);}

intmain()

;//兩個已排序的陣列放在乙個陣列裡,第乙個元素0不算

int b[11]

=;//歸併後的陣列

mergesort

(a, b,1,

4,10)

;for

(int i =

1; i <=

10; i++

) cout << b[i]

<<

" ";

cout << endl;

return0;

}

基本排序演算法 插入排序

排序方式 插入排序 插入排序的 實現雖然沒有氣泡排序和選擇排序那麼簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。當然,如果你說你打撲克牌摸牌的時候從來不按牌的大小整理牌,那估計這輩子你對插入排序的演算法都不會產生任何興趣了 哈哈?原理 從第二個元素開始 假定第乙個元...

基本排序演算法 插入排序

排序演算法相關理論網上資料已經很多了,這裡記錄一下 方便複習。插入排序核心思想 把陣列分為有序表和無序表,從後面無序表中依次取出第乙個數,插入到有序表的適當位置。description 插入排序 1.從第乙個元素開始,該元素可以認為已經被排序 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 ...

快速排序和插入排序

下面介紹用快速排序法和插入排序法來給乙個一維陣列排序 具體 實現如下 快速排序法 function quick sort arr 獲取陣列的長度 len count arr 如果陣列的 1,說明不許排序 if len 1 選擇第乙個元素作為標尺 base arr 0 初始化兩個陣列 left arr...