开发者社区> 问答> 正文

编写程序,随机产生20个整数,使用选择法进行排序并输出。

编写程序,随机产生20个整数,使用选择法进行排序并输出。

展开
收起
知与谁同 2018-07-21 18:59:10 2437 0
1 条回答
写回答
取消 提交回答
  • #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    #define MAXlen 20

    void select_sort(int *x, int n) {     //选择排序

    int i, j, min;

    int t;

    for (i = 0; i < n - 1; i++) {     // 要选择的次数:0~n-2共n-1次 

    min = i;                      // 假设当前下标为i的数最小,比较后再调整 

    for (j = i + 1; j < n; j++) { //循环找出最小的数的下标是哪个

    if (*(x + j) < *(x + min)) {   

    min = j;              // 如果后面的数比前面的小,则记下它的下标

    }

    }  

    if (min != i) {               // 如果min在循环中改变了,就需要交换数据

    t = *(x + i);

    *(x + i) = *(x + min);

    *(x + min) = t;

    }

    }

    }

    int main() {

    int i;

    int iArr[MAXlen];

    srand((unsigned int)time(NULL));

    printf("\n排序前:\n");

    for(i = 0 ; i < MAXlen ; i++) {

    iArr[i] = (unsigned int)rand() % 1000;

    if(i % 10 == 0) printf("%\n");

    printf("%5d",iArr[i]);

    }

    printf("\n");

    select_sort(iArr,MAXlen);

    printf("\n排序后:\n");

    for(i = 0 ; i < MAXlen ; i++) {

    if(i % 10 == 0) printf("%\n");

    printf("%5d",iArr[i]);

    }

    printf("\n\n");

    return 0;

    }

    2019-07-17 22:50:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载