分治排序:
把乙個陣列分成兩個陣列,然後在把這兩個陣列再各自分成兩個陣列,直到陣列有兩個數,然後比較這兩個數,並且合併,排序。
就是上面這個樣子 的。。
不說了上**(c++版):
/**
* name:分治演算法
* time:15/8/9 14:25
* environment: ubuntu 14.04,sublime text 3
*/#include using namespace std;
/** 列印陣列
*/void printarray(int array,int length)}/*
* 乙個陣列從中間分成兩個有序陣列
* 把這兩個有序陣列合併成乙個有序陣列
*/void merge(int array,int first,int center,int end)
//printarray(l,n1);
for(int j = 0; j < n2; j++ )
//printarray(r,n2);
l[n1] = 1000; //設定哨兵
r[n2] = 1000; //設定哨兵
//cout << "r[5] =" << r[4] << endl;
int k1 = 0;
int k2 = 0;
for (int k = first; k <= end; ++k) //把得到的兩個陣列進行排序合併
{ //cout << l[k1] <
排序演算法總結 C 版)
1 時間複雜度 分析關鍵字比較次數和記錄的移動次數 2 空間複雜度 需要的輔助記憶體 3 穩定性 相同的關鍵字計算後,次序是否不變。直接插入排序 insertionsort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。例如 ...
排序演算法筆記(C 版)
記錄最近學習的一些排序演算法 注 第乙個演算法給出了完整的測試程式,其餘的為避免重複及節省空間,只顯示排序演算法部分 執行結果的程式耗時每次執行略有不同,僅供大致對比參考 時間複雜度 o n 最好 o n2 平均 o n2 最差 空間複雜度 o 1 include include 計時用 using...
C 版 常用排序演算法。
1 個人學習記錄。2 大佬請繞道。using system.collections using system.collections.generic using unityengine namespace datastructure.wcc region 穩定排序 歸併排序 氣泡排序 插入排序。re...