m0_74260788 2023-02-10 15:32 采纳率: 86.4%
浏览 70
已结题

pta选择法排序练习

选择法排序:本题要求将给定的n个整数从小到大排序后输出。输出时相邻数字中间用一个空格分开,行末不得有多余空格。


temp=a[index];a[index]=a[k];a[k]=temp;

我有点理解不了这串代码是什么意思

#include <stdio.h>
# define MAXN 10

int main()
{
    int i, index, k, n, temp;
    int a[MAXN];

    scanf("%d", &n);
    for(i = 0; i < n; i++){
        scanf("%d", &a[i]);
    }
    
    for(k = 0; k < n-1; k++){
index=k;
for(int i=k+1;i<n;i++){
if(a[index]>a[i]){
  index = i;  
            }    
        }  
temp=a[index];a[index]=a[k];a[k]=temp;
  }
   for(i = 0; i < n; i++) {
if(i==0){
  printf("%d", a[i]);
        }else{
            printf(" %d", a[i]);
        }
    }
    printf("\n");
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 我小时候很黑 2023-02-10 16:06
    关注

    它实现了一个选择排序算法。代码首先读入一个整数n,然后读入n个整数存入数组a中。随后,代码使用选择排序算法对数组a进行排序。最后,代码输出排序后的数组。

    具体来说,选择排序的步骤如下:

    找到数组a中的最小元素。
    将最小元素与第一个元素交换。
    在剩下的元素中找到最小元素,并将其与第二个元素交换。
    重复以上步骤,直到所有元素都排序完毕。
    代码使用两个循环,一个循环处理n-1次排序,另一个循环找出数组a中的最小元素。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 已采纳回答 2月11日
  • 创建了问题 2月10日

悬赏问题

  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测