09 排序1 排序

2022-03-18 13:03:10 字數 2603 閱讀 2360

本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下:

資料1:只有1個元素;

資料2:11個不相同的整數,測試基本正確性;

資料3:103個隨機整數;

資料4:104個隨機整數;

資料5:105個隨機整數;

資料6:105個順序整數;

資料7:105個逆序整數;

資料8:105個基本有序的整數;

資料9:105個隨機正整數,每個數字不超過1000。

11

4 981 10 -17 0 -20 29 50 8 43 -5

-20 -17 -5 0 4 8 10 29 43 50 981
/*!

* \file 排序.cpp

* * \author ranjiewen

* \date 2017/05/01 15:09

* *

*/#includeusing namespace std;

#define elementtype int

#define maxnum 100001

void x_sort(elementtype a, int n);

void bubble_sort(elementtype a, int n)

} if (flag==0)

}}void insertion_sort(elementtype a, int n)

a[p] = temp; }}

//原始的shell排序--theta(n*n)

void shell_sort(elementtype a, int n)

a[p] = temp;

} }}void shellsort(elementtype a, int n)

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

; /* 初始的增量sedgewick[si]不能超過待排序列長度 */

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

for (p = d; p= d && a[i - d]>tmp; i -= d)

a[i] = a[i - d];

a[i] = tmp; }}

void percdown(elementtype a, int p, int n)

a[parent] = x;

}void heap_sort(elementtype a, int n) //和堆的操作有點不一樣:這裡從0開始儲存元素,堆的操作0位置為哨兵

for (int i = n - 1; i > 0;i--) }

/* l = 左邊起始位置, r = 右邊起始位置, rightend = 右邊終點位置*/

void merge(elementtype a, elementtype tmpa, int l, int r, int rightend)

while (l <= leftend)

tmpa[temp++] = a[l++]; /* 直接複製左邊剩下的 */

while (r <= rightend)

tmpa[temp++] = a[r++]; /* 直接複製右邊剩下的 */

for (int i = 0; i < numelements; i++, rightend--)

a[rightend] = tmpa[rightend]; /* 將有序的tmpa複製回a */

}/* 核心遞迴排序函式 */

void msort(elementtype a, elementtype tmpa, int l, int rightend)

}/* 歸併排序介面函式 */

void mergesort(elementtype a, int n)

else printf("空間不足");

}/* length = 當前有序子列的長度*/

void merge_pass(elementtype a, elementtype tmpa, int n, int length)

void merge_sort(elementtype a, int n)

free(tmpa);

} else printf("空間不足");

09 排序1 排序

09 排序1 排序 25 分 給定n 個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 include include includeusing namespace std const int cutoff 1000...

09 排序1 排序

n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。資料2 11個不相同的整數,測試基本正確性 資料3 10 3個隨機整數 資料4 10 4個隨機整數 資料5 10 5個隨機整數 資料6 10 5個順序整數 資料7 10 5個逆序整數 資料8 10 5個基本有序的整數 資料9 10 5個隨機正...

09 排序1 排序 25

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