任務和**:體驗選擇排序:改造(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步選擇時交換哪兩個位置...