0
已解决
被禁言
资深守护
4893 选择排序交换次数(未优化)
经验值:0 时间限制:1000毫秒
4893 选择排序交换次数(未优化)
经验值:0 时间限制:1000毫秒
题目描述 Description
现在有一组数据,对这组数据从小到大排序,求利用选择排序的交换次数是多少?
输入描述 Input Description
第一行,一个数n
第二行,n个数
输出描述 Output Description
一个整数,表示交换次数
样例输入 Sample Input
5 5 4 3 2 1
样例输出 Sample Output
10
数据范围及提示 Data Size & Hint
n<=100
0
已采纳
思路:选择排序,进行一步计数器加一步
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]>a[j]){
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
cnt++;
}
}
}
核心如上
望采纳谢谢!!

ps:
伪代码:
定义长整型 n,a[105],cnt;
输入n;
循环(1~n){
输入a[i];
}
核心
输出cnt;
0
0
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
if(a[i]>a[j]){
cnt++;
swap(a[i],a[j]);
}
}
}
0
