09 排序1 排序 25分

2021-08-01 18:28:19 字數 3151 閱讀 5095

//排序

#include #include #include #define maxn 100005

void swap(int *a, int *b)

void bubble_sort(int a, int n)

}if(flag) break;

}}void insertion_sort(int a, int n)

}void shellsort(int a, int n) ;//0作為結束的標誌

int dist[maxn] = ;//hibbard增量序列,臥槽忘了指定陣列大小。

int d, i, si, tmp, j, flag;

//for(si = 0; sedgewick[si] >= n; si++);

//for(d = sedgewick[si]; d > 0; d = sedgewick[++si])

for(i = 0; dist[i]; i++) dist[i+1] = (dist[i]+1)/2-1;

//for(i = 0; dist[i]; i++) printf("%d ", dist[i]);

for(si = 0; dist[si] >= n; si++);

for(d = dist[si]; d > 0; d = dist[++si])

for(i = d; i < n; i++) /*

for(i = n; i > 0; i -= d)

}if(flag) break;

}*/}void percdown(int a, int p, int n)

a[parent] = tmp;

}void heapsort(int a, int n)

}void merge(int a, int temp, int ll, int rl, int rh)

while(ll <= lh) temp[tl++] = a[ll++];

while(rl <= rh) temp[tl++] = a[rl++];

//for(i = 0; i < len; i++, rh--) a[rh] = temp[rh];

}void m_sort(int a, int temp, int l, int r)

}void merge_sort(int a, int n)

void merge_pass(int a, int temp, int n, int length)

void merge_sort_again(int a, int n)

}int a[maxn];

int main()

return 0;}/*

bubble_sort:穩定,但是,很慢

insertion_sort:穩定,排有序的數蠻快的額。。

shellsort:速度不錯,但是不穩定,為什麼用氣泡排序寫的shell排序會超時呢。。

sedgewick增量序列

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 1/1 2 1

測試點2 答案正確 10/10 1 1

測試點3 答案正確 2/2 3 1

測試點4 答案正確 2/2 19 1

測試點5 答案正確 2/2 56 2

測試點6 答案正確 2/2 39 2

測試點7 答案正確 2/2 53 2

測試點8 答案正確 2/2 40 2

測試點9 答案正確 2/2 50 1

hibbard增量序列:

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 1/1 6 1

測試點2 答案正確 10/10 3 1

測試點3 答案正確 2/2 3 1

測試點4 答案正確 2/2 13 1

測試點5 答案正確 2/2 84 2

測試點6 答案正確 2/2 45 2

測試點7 答案正確 2/2 71 2

測試點8 答案正確 2/2 54 2

測試點9 答案正確 2/2 73 2

heapsort:好處在於可以快速找到乙個序列中前m個最大或最小元素

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 1/1 2 1

測試點2 答案正確 10/10 2 1

測試點3 答案正確 2/2 2 1

測試點4 答案正確 2/2 29 1

測試點5 答案正確 2/2 55 2

測試點6 答案正確 2/2 49 2

測試點7 答案正確 2/2 50 2

測試點8 答案正確 2/2 49 2

測試點9 答案正確 2/2 51 1

merge_sort:穩定,外排序非常有用。

遞迴實現:

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 1/1 2 1

測試點2 答案正確 10/10 2 1

測試點3 答案正確 2/2 2 1

測試點4 答案正確 2/2 7 1

測試點5 答案正確 2/2 65 2

測試點6 答案正確 2/2 44 2

測試點7 答案正確 2/2 44 2

測試點8 答案正確 2/2 44 2

測試點9 答案正確 2/2 61 2

非遞迴實現:效果比遞迴好些

測試點 結果 得分/滿分 用時(ms) 記憶體(mb)

測試點1 答案正確 1/1 2 1

測試點2 答案正確 10/10 3 1

測試點3 答案正確 2/2 2 1

測試點4 答案正確 2/2 6 1

測試點5 答案正確 2/2 49 2

測試點6 答案正確 2/2 43 2

測試點7 答案正確 2/2 47 2

測試點8 答案正確 2/2 43 2

測試點9 答案正確 2/2 49 2

*/

09 排序1 排序 25分

給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 資料1 只有1個元素 資料2 11個不相同的整數,測試基本正確性 資料3 103個隨機整數 資料4 104個隨機整數 資料5 105個隨機整數 資料6 105個...

09 排序1 排序 25分

給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給出正整數n 10 5 隨後一行給出n個 長整型範圍內的 整數,其間以空格分隔。在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得有多餘...

09 排序1 排序 25

時間限制 5000 ms 記憶體限制 128000 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入格式 輸入第一行給出正...