#ifndef sort_h
#define sort_h
#include
template
void insert_sort(t* a, const int length)
else
result[k++] = right[j++];
}while (i < l_length)
while(j < r_length)
return result;
}template
t* merge_sort(t* a, const int length)
t* left = new t[length/2];
t* right = new t[length - length/2];
int i,j;
for (i=0;ileft = merge_sort(left,length/2);
right = merge_sort(right,(length+1)/2);
t* result = merge(left,right,length/2,length - length/2);
return result;
}#endif
插入排序和歸併排序
一共有三種 直接插入排序 希爾排序和折半插入排序。最後乙個折半插入排序,感覺用在陣列上面不太方便,就沒寫出來。遞迴實現沒有思路,使用的非遞迴演算法。直接插入排序 這個演算法預設前n個數是已經排好序的,n隨著你的插入逐漸變大,最開始是1。然後從後往前逐漸查詢應該插入的位置 我的演算法是從小到大,那就依...
插入排序和歸併排序
本人在csdn的原鏈結 首先是插入排序,這個過程就可以比喻成左手放牌 已排好序 右手抓牌 牌堆上最頂端的一張牌 然後放到左手,插到正確的位置 for j 2 to a.length key a j i j 1 while i 0 a i 0 key a i a i 1 key 空間複雜度為o 1 最...
插入排序和歸併排序
插入排序 c include using namespace std void main 定義乙個未排好序的陣列 int i,j,key for i 0 i 6 i 輸出排序前的序列 printf 3d a i for j 1 j 6 j a i 1 key coutprintf 3d a i co...