Sort it

来源:互联网 发布:sam smith 知乎 编辑:程序博客网 时间:2024/06/05 20:45

Sort it

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述
You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need.
For example, 1 2 3 5 4, we only need one operation : swap 5 and 4.
输入
The input consists of a number of test cases. Each case consists of two lines: the first line contains a positive integer n (n <= 1000); the next line contains a permutation of the n integers from 1 to n.
输出
For each case, output the minimum times need to sort it in ascending order on a single line.
样例输入
31 2 34 4 3 2 1 
样例输出
06
来源
ZJFC 2009-3 Programming Contest
上传者

张洁烽

题意:每次只能两两互换,从大到小排序需要的步数是多少?方法:快排

#include<bits/stdc++.h>using namespace std;int main(){int n;while(scanf("%d",&n)!=EOF){int dp[1003];for(int i=0;i<n;i++)scanf("%d",&dp[i]);int count=0;for(int i=0;i<n-1;i++){for(int j=i+1;j<n;j++){if(dp[i]>dp[j]){int temp=dp[i];dp[i]=dp[j];dp[j]=temp;count++;}}}printf("%d\n",count);}}


原创粉丝点击