选择排序为什么不行?
查看原帖
选择排序为什么不行?
179344
董承文楼主2023/6/13 11:03
//选择排序,求需要几次交换 
//6
//1 2 3 2 3 1
#include<bits/stdc++.h>
using namespace std;
int a[1010],n,cnt;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<n;i++)
	{
		int minn=1e9,pos;
		for(int j=i;j<=n;j++)
		{
			if(a[j]<=minn)//
			{
				minn=a[j];
				pos=j;
			}
		}
		if(pos!=i&&a[pos]!=a[i])//
		{
			swap(a[i],a[pos]);
			cnt++;
		}
	}
	cout<<cnt;
    return 0;
}
2023/6/13 11:03
加载中...