問題分析:
在程式設計時,有非常多型別的排序方法,但是不同的排序方法最終的執行時間也不相同。尤其是當規模趨近無窮大時,所用的時間的差別會變得非常的大。本題是舉出堆排序和選擇排序的例子,可以通過clock指針對兩種排序進行時間的計算。
#define _crt_secure_no_deprecate
#include #include #include #include #include void selectionsort(int a, int m);
void adjustheap(int * arra, int i, int length);
void swap(int * arra, int x, int y);
void heapsort(int *arra, int arralength);
void selectionsort(int a, int m)//每次都把最小的放最前邊,公升序
//i不等於k是就證明a[i]不是最小的,
//i等於k時證明a[i]就是本輪比較過程中最小的值
if (i != k)
}}void swap(int * arra, int x, int y)
void heapsort(int *arra, int arralength)
//構建大頂堆
for (int j = arralength - 1; j>0; j--) }
int main()
{ clock_t start;
clock_t finish;
//double timespan;
time_t seconds2;
int n;//
int time1, time2;
printf("input how many random numbers to generate: ");
scanf("%d", &n);
int arralength = n;
int * arra = (int *)malloc(n * sizeof(int));
int * arra_bak = (int *)malloc(n * sizeof(int));
srand((unsigned)time(null));
for (int i = 0; i
問題 H 整數奇偶排序
演算法筆記 4.1小節 排序 問題 h 整數奇偶排序 題目描述 輸入10個整數,彼此以空格分隔。重新排序以後輸出 也按空格分隔 要求 1.先輸出其中的奇數,並按從大到小排列 2.然後輸出其中的偶數,並按從小到大排列。輸入 任意排序的10個整數 0 100 彼此以空格分隔。輸出 可能有多組測試資料,對...
演算法筆記 問題 E 大整數排序
題目描述 對n個長度最長可達到1000的數進行排序。輸入輸入第一行為乙個整數n,1 n 100 接下來的n行每行有乙個數,數的長度範圍為1 len 1000。每個數都是乙個正數,並且保證不包含字首零。輸出可能有多組測試資料,對於每組資料,將給出的n個數從小到大進行排序,輸出排序後的結果,每個數占一行...
整數奇偶排序
總時間限制 1000ms 記憶體限制 65536kb 描述 給定10個整數的序列,要求對其重新排序。排序要求 1.奇數在前,偶數在後 2.奇數按從大到小排序 3.偶數按從小到大排序。輸入輸入一行,包含10個整數,彼此以乙個空格分開,每個整數的範圍是大於等於0,小於等於100。輸出按照要求排序後輸出一...