提高專案25 3選擇排序

2021-07-14 12:47:01 字數 1022 閱讀 3342

任務和**:體驗選擇排序:改造(1)的程式,將bubble_sort(...)改為select_sort(...),排序演算法由氣泡排序換作為選擇排序,排序結果由降序變為公升序,完成類似的任務。

/*

檔名:main.c

完成日期:2016.7.7

問題描述:體驗選擇排序:改造(1)的程式,將bubble_sort(...)改為select_sort(...),排序演算法由氣泡排序換作為選擇排序,排序結果由降序變為公升序,完成類似的任務。

程式輸出:

*/#include void select_sort(int a,int n);

void output_array(int b,int m);

int main( )

; int b[15]=;

select_sort(a,20); //用選擇排序法公升序排序a中元素

output_array(a,20); //輸出排序後的陣列

select_sort(b,15); //用選擇排序法公升序排序b中元素

output_array(b,15); //輸出排序後的陣列

return 0;

}void select_sort(int a,int n)

}temp = a[k];

a[k] = a[i];

a[i] = temp;

}}void output_array(int b,int m)

}

程式執行結果:

總結:對於n和元素的排序,需要進行n-1次比較,所以排序的最外層需要n-1次迴圈,在內層中選擇排序的做法是:首先將第乙個元素作為最小值,然後在後面的元素中查詢到最小值,與第乙個元素比較,如果比第乙個元素小,則交換兩個元素的位置,然後將第二個元素作為最小值,查詢剩餘元素中的最小值與第二個元素比較,如果比第二個元素小,再次交換,直到所有元素按照需要的順序排列。

演算法提高 選擇排序

演算法提高 選擇排序 時間限制 1.0s 記憶體限制 256.0mb 選擇排序 問題描述 排序,顧名思義,是將若干個元素按其大小關係排出乙個順序。形式化描述如下 有n個元素a 1 a 2 a n 從小到大排序就是將它們排成乙個新順序a i 1 輸入格式 第一行乙個正整數n,表示元素個數 第二行為n個...

演算法提高 選擇排序

演算法提高 選擇排序 時間限制 1.0s 記憶體限制 256.0mb 提交此題 選擇排序 問題描述 排序,顧名思義,是將若干個元素按其大小關係排出乙個順序。形式化描述如下 有n個元素a 1 a 2 a n 從小到大排序就是將它們排成乙個新順序a i 1 a i 2 a i n i k 為這個新順序。...

演算法提高 選擇排序

選擇排序 問題描述 排序,顧名思義,是將若干個元素按其大小關係排出乙個順序。形式化描述如下 有n個元素a 1 a 2 a n 從小到大排序就是將它們排成乙個新順序a i 1 輸入格式 第一行乙個正整數n,表示元素個數 第二行為n個整數,以空格隔開 輸出格式 共n行,每行輸出第n步選擇時交換哪兩個位置...