插入排序 歸併排序

2021-06-02 04:48:33 字數 1102 閱讀 3820

/*插入排序*/

#define len 5

int a[len] = ;

void insertion_sort(void)

int i, j, k;

for(j = 1; j < len; j++)

k = a[j];

i = j - 1;

while(i >= 0 && a[i] > k)

a[i+1] = a[i];

--i;

a[i+1] = k;

/*歸併排序*/

int a[8] = ;

void merge(int start, int mid, int end)

int n1 = mid - start + 1;

int n2 = end - mid;

int left[n1], right[n2];

int i, j, k;

for(i = 0; i < n1; +i)

left[i] = a[start+i];

for(j = 0; j < n2; ++j)

right[j] = a[mid+1+j];

i = j = 0;

for(k = start; i < n1 && j < n2; ++k)

if(left[i] < right[j])

a[k] = left[i];

++i;

else

a[k] = right[j];

++j;

if (i < n1)

for(; i < ni; ++i)

a[k] = left[i];

++k;

if(j < n2)

for(; j < n2; ++j)

a[k] = right[j];

++k;

void sort(int start, int end)

int mid;

if(start < end)

mid = (start + end)/2;

sort(start, mid);

sort(mid+1, end);

merge(start, mid, end);

插入排序 歸併排序

演算法導論初涉,第一講練習內容 include define n 6 int a n void init 初始化陣列 a i 1 k void output int a,int n void merge int low,int mid,int high while s mid b i a s whi...

插入排序 歸併排序

一直沒自己寫過 然後自己寫了下 其實我主要查的wikipedia 插入排序 歸併排序 先插排 插入排序 英語 insertion sort 是一種簡單直觀的 排序演算法 它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序 在實現上,通常採用in ...

插入排序與歸併排序

關於排序似乎從大一開始學習變成就開始在使用各種排序方法了,今天看了下有關於插入排序和歸併排序的內容,並且對應在leetcode 上面做了兩道測試題,因此就對插入排序和歸併排序做乙個簡單的小結吧,就當做是我的學習筆記,大佬請勿嘲笑!關於插入排序主要的思想就是從左到右的遍歷乙個序列,有乙個標識來標記,保...