【GIF动画+完整可运行源代码】C++实现 选择排序——十大经典排序算法之二
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:36
十大年夜经典排序算法系列博客——>传送门
选择排序是一种简单直不雅的排序算法,起首在未排序序列中找到最小元素,存放到排序序列的肇端地位,然后,再大年夜残剩未排序元素中持续寻找最小元素,然后放到已排序序列的末尾。以词攀类推,直到所有元素均排序完毕。
算法步调:
-
初始状况:无序序列为R[0,n?1],长度n,有序区为空;
-
第i=1,…,n?1趟排序大年夜当前无序区R[i?1,n?1]中选出最小的元素R[k],并将它与无序区的第1个记录R[i?1]交换,则R[0,i?1]变为元素个数增长1的新有序区,R[i,n?1]变为元素个数削减1的新无序区;
-
n?1趟选择交换后停止。
代码展示
#include<iostream>
using namespace std;
void SelectSort(int a[],int n)//选择排序
{
for(int i=0; i<n-1; i++)
{
int index=i;
for(int j=i+1; j<n; j++)
{
if(a[j]<a[index])//寻找无序区内的最小值
index=j;
}
if(index!=i) //把找到的最小值放到无序区的最前面
{
int tmp=a[index];
a[index]=a[i];
a[i]=tmp;
}
}
}
int main()
{
int a[5]={
7,3,1,5,70
};
SelectSort(a,5);
return 0;
}