C語言:簡單選擇排序
阿新 • • 發佈:2018-12-21
題目描述
編一程式用簡單選擇排序方法對n個整數排序(從大到小)。
對n個數進行降序排列,簡單選擇排序的演算法思想如下:
1)首先通過n-1次比較,從n個元素中找出值最大的元素,將它與第一個元素交換。(第一趟排序)。
2)再通過n-2次比較,從剩餘的n-1個元素中找出值次大的元素,將它與第二個元素交換。(第二趟排序)。
3)重複上述操作,共進行n-1趟排序後,排序結束。
輸入
先輸入整數個數n(n<=100000)
然後輸入n個整數
輸出
輸出排序後的n個整數,整數之間由1個空格隔開。
樣例輸入
10
2 7 12 23 23 34 45 56 87 98
樣例輸出
98 87 56 45 34 23 23 12 7 2
#include<stdio.h> void fuc(int a[],int n) { int i,max,m,k,t,j; m=n; for(k=0;n>0;n--,k++) { for(max=a[k],i=m;i>=k;i--) { if(a[i]>=max) { max=a[i]; t=i; } } j=a[k]; a[k]=max; a[t]=j; } for(i=0;i<=m;i++) { printf("%d",a[i]); if(i!=m) printf(" "); } } int main() { int i,a[100000],n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); i--; fuc(a,i); return 0; }