众所周知,在写一些程序时会要用到有序序列,但如果输入序列给的是无序的呢?没错,就要把它从无序变成有序。这就需要排序算法了。
那么,如何来做到呢?
要想知道该如何做到,我们就需要知道它的核心原理。
选择排序就是像教室里换位置一样,个子高的和个子矮的换,直到高的在后,矮的在前就好了。
我们的选择排序就是这样。
实现
首先,拿到数组长度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;
}
//结束了,很短对吧?
那么,这一讲就结束了,记得点赞!