1樓:苦澀的咖啡
以下是**,至於a陣列你可以開的很大很大,,,,,演算法複雜度為n#include "stdio.h"
void hebing (int*,int,int,int);
void fenzhi(int*,int,int);
int main()
;int i;
fenzhi(a,0,9);
for (i=0;i<10;i++)
printf("\n");
return 0;
}void hebing(int *a,int p,int q,int r)//合併函式
for (j=0;j i=0; j=0; for (k=p;k<=r;k++) else if (j==n2) else if(l[i]<=r[j]) a[k]=l[i++]; else a[k]=r[j++];}} void fenzhi(int *a,int p,int r)//分治遞迴 }至於要找到排序後在原來陣列的位置這不簡單嗎?先把原陣列備份,然後再根據排序後的陣列元素對原陣列檢索,直接一個for()迴圈就可以檢索出來了嗎?當然,也可以在我上面的分治排序法中直接記錄下在原來陣列的位置, 我懶得弄了,以上方法出自《演算法導論》第十六頁,書上只有偽**,這是我參照書上所寫的一個例子 滿意請採納,謝謝 2樓:匿名使用者 不建議自己搞,不知道你用來幹嘛。你需要根據實際要求重新規劃,這不是演算法可以解決的,sqlserver管理幾個g的空間,不是靠演算法,要解決這類問題要藉助多種手段,比如多執行緒,快取,後臺非同步處理等等。 這個建議採用快速排序。快速排序是一種基於分治演算法的排序,網上能搜尋到很多講解,我就不在此贅述了。另一種方法是採用堆排序。採用堆 heap 這種資料結構來實現排序。堆是一個完全2叉樹,且滿足所有父節點均小於 或均大於 其子節點。堆排序的過程就是,將待排序的數建成堆,然後每次彈出堆的頭節點。具體的實現... 首先以array 0 作為參照,從左到右掃描,找到最小的資料與array 0 位置交換。接下來以array 1 作為參照,重複上述過程。k i定位參照 k j找到剩下陣列中最小值 k i是為了每次迴圈都從當前項開始呀。k j 不是你說的j k 是為了記錄後面的最小項,以方便替換。從第i個數開始,比較... string並不是c 的基本資料型別。它是標準庫裡宣告的一個字串類。所以樓主的答案是 可以。string str 10 定義一個字串陣列str顯示的是 i love you 還可以這樣定義字串陣列 string name 5 可以賦值啊。include include using namespace...VC中如何將陣列快速的排序
c語言用選擇法對陣列中整數按由小到大排序
c 中string陣列的問題,C 中string陣列的問題