本題要求實現乙個函式,求n
個集合元素a
的中位數,即序列中第⌊n/2+1⌋大的元素。其中集合元素的型別為自定義的elementtype
。
elementtype median( elementtype a, int n );
其中給定集合元素存放在陣列a
中,正整數n
是陣列元素個數。該函式須返回n
個a
元素的中位數,其值也必須是elementtype
型別。
#include #define maxn 10
typedef float elementtype;
elementtype median( elementtype a, int n );
int main ()
void heapadjust(elementtype* a,int i,int len ) //對於下標為i的元素從上往下調整 }
void heapsort(elementtype* a,int n)
} elementtype median( elementtype a, int n ) //注意經過堆排序後,元素從大到小排列
最後使用希爾排序,ac!!
希爾排序,就是分組進行插入排序, 將待排序列分割成若干子串行,子串行中每個元素相隔gap,分別進行直接插入排序,然後按一定規則減小gap再進行排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。因為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的,因此希爾排序在時間效率上比前兩種方法有較大提高。
具體實現時每次從陣列第gap個元素開始,每個元素與自己組內的資料進行直接插入排序。
void shellsort(elementtype* a, int n)
a[k+gap]=tmp;
}} }
}elementtype median( elementtype a, int n )
6 11 求自定型別元素序列的中位數
6 11 求自定型別元素序列的中位數 25 分 本題要求實現乙個函式,求n個集合元素a的中位數,即序列中第 n 2 1 大的元素。其中集合元素的型別為自定義的elementtype。elementtype median elementtype a,int n 其中給定集合元素存放在陣列a中,正整數n...
6 11 求自定型別元素序列的中位數 (25 分)
本題要求實現乙個函式,求n個集合元素a的中位數,即序列中第 n 2 1 大的元素。其中集合元素的型別為自定義的elementtype。elementtype median elementtype a,int n 其中給定集合元素存放在陣列a中,正整數n是陣列元素個數。該函式須返回n個a元素的中位數,...
6 11 求自定型別元素序列的中位數 25分
本題要求實現乙個函式,求n個集合元素a的中位數,即序列中第 n 1 2 大的元素。其中集合元素的型別為自定義的elementtype。函式介面定義 elementtype median elementtype a,int n 其中給定集合元素存放在陣列a中,正整數n是陣列元素個數。該函式須返回n個a...