//排序
#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個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入格式 輸入第一行給出正...