选择排序算法

问题:给定一个整数序列,按照从小到大的顺序(确切地说,是非递减的顺序)排列序列中的整数。
输入:一个整数序列。
输出:整数序列,其中的整数升序排列。

//简单选择排序, 时间复杂度 O(n^2)  2017年7月21日
#include <stdio.h>
#define LEN 10

int main(){
    int i,j;
    int arr[LEN];
    void sort(int a[LEN]);
    
    printf("请输入数组的%d个元素\n", LEN);
    for(i=0; i<LEN; i++){
        scanf("%d",&arr[i]);
    }
    printf("排序前的数组为:\n");
    for(j=0; j<LEN; j++){
        printf("%4d",arr[j]);
    }
    printf("\n");

    //进行选择排序
    sort(arr);
    printf("排序后的数组为:\n");
    for(j=0; j<LEN; j++){
        printf("%4d",arr[j]);
    }
    printf("\n");
    return 0;
}

void sort(int a[LEN]){
    int min,temp,i,j;
    for(i=0; i<LEN; i++){
        min=i;
        for(j=i+1; j<LEN; j++){
            if(a[j]<a[min]) min=j;
        }
        temp=a[min];
        a[min]=a[i];
        a[i]=temp;//认真啊
    }
}

 

posted @ 2017-07-21 17:22  Allen101  阅读(242)  评论(0编辑  收藏  举报