问题标题: 酷町堂:重金悬赏!!!!求1881 4893 选择排序交换次数(未优化)经验值:0 时间限制:1000毫秒 (尖叫!)

0
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
我要回答