选择排序

【问题描述】

   有n个大小不等的梨, 请利用选择排序将他们按照从小到大的顺序排列, 并输出。 输入: 两行第一行一个整数n, 第二行n个随机正整数表示梨的重量( 1<=n<=100 )。 输出: 一行, 升序排列的整数序列。

【样例输入】

  5

  12 8 3 7 15

【样例输出】

  3 7 8 12 15

复制代码
#include<iostream>
using namespace std;
int main(){
    int n,a[101],mina,pos; 
    cin>>n;
    for(int i=1; i<=n; i++){
        cin>>a[i];
    }
    // 选择排序: 每遍历一次序列找出最小值,然后最小值前置。
    for(int i=1; i<=n-1; i++){
        pos=i; // 假设下标为i元素是最小值,则记录其下标。 
        // 位置j是递增的。
        mina=a[i]; // 假设第一个元素最小,打擂台法。 
        for(int j=i+1; j<=n; j++){
            if(a[j]<mina){
                mina=a[j];
                pos=j; // 记录当前最小值元素的下标。 
            }
        }
        swap(a[pos], a[i]); // 交换位置 
    } 
    for(int i=1; i<=n; i++){
        cout<<a[i]<<" ";
    }
    return 0;
} 
复制代码

 

posted @   Hi,小董先生  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示