整數排序問題

2021-08-19 14:10:22 字數 1239 閱讀 7943

問題分析:

在程式設計時,有非常多型別的排序方法,但是不同的排序方法最終的執行時間也不相同。尤其是當規模趨近無窮大時,所用的時間的差別會變得非常的大。本題是舉出堆排序和選擇排序的例子,可以通過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。輸出按照要求排序後輸出一...