C++算法课 第一课 排序算法------选择排序

众所周知,在写一些程序时会要用到有序序列,但如果输入序列给的是无序的呢?没错,就要把它从无序变成有序。这就需要排序算法了。

那么,如何来做到呢?

要想知道该如何做到,我们就需要知道它的核心原理。

选择排序就是像教室里换位置一样,个子高的和个子矮的换,直到高的在后,矮的在前就好了。

我们的选择排序就是这样。

实现

首先,拿到数组长度n和一个无序(或有序)序列,来一个for循环,这个for循环是来固定换好的数的,从1到n(或0到n-1)。在建第二个循环,这个循环是来找 <(小于) 或 >(大于)a[i]的数的 。一旦找到符合条件的数,就交换(swap(a[i],a[j]))这两个数,并break循环,当一层循环循环完后,整个序列就变得有序了。(没错,就是那么简单)。

代码

什么,还需要代码? 这就是。

#include<iostream>
using namespace std;
int main(){
	int n,a[100]={};//初始化数组
    cin>>n;
    for(int i=0;i<n;i++)cin>>a[i];   //输入
    for(int i=0;i<n;i++){    //固定位数的循环
        for(int j=i+1;j<n;j++){   //遍历i+1到n
            if(a[i]<a[j])swap(a[i],a[j])     //判断并交换
        }
    }
    for(int i=0;i<n;i++)cout<<a[i]<<' ';   //输出
	return 0;
}
//结束了,很短对吧?

那么,这一讲就结束了,记得点赞!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值