【GIF动画+完整可运行源代码】C++实现 选择排序——十大经典排序算法之二

选择排序是一种简单直观的排序算法,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

算法步骤:

  • 初始状态:无序序列为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;
}

日拱一卒,功不唐捐。

猜你喜欢

转载自blog.csdn.net/weixin_43899069/article/details/109150043