特殊交换
现有一个n个整数的序列,你要做的就是交换两个相邻数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。
输入描述:
第一行输入一个正整数n(n≤1000),表示数字序列的元素个数,占一行;接下来一行输入从1到n的n个整数排序,中间用空格隔开
输出描述:
输出序列升序排列需要的最少交换次数
输入例子:
4
4 3 2 1
输出例子:
6
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
while(cin>>n){
vector<int> vec;
for(int i=0;i<n;i++){
int num;
cin>>num;
vec.push_back(num);
}
int count=0;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(vec[j]>vec[j+1]){
int temp=vec[j];
vec[j]=vec[j+1];
vec[j+1]=temp;
count++;
}
}
}
cout<<count<<endl;
}
}