分治演算法排序(C 版)

2021-07-04 10:54:18 字數 868 閱讀 9191

分治排序:

把乙個陣列分成兩個陣列,然後在把這兩個陣列再各自分成兩個陣列,直到陣列有兩個數,然後比較這兩個數,並且合併,排序。

就是上面這個樣子 的。。

不說了上**(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...