zoukankan      html  css  js  c++  java
  • Sort it

    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. 

    InputThe 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.OutputFor each case, output the minimum times need to sort it in ascending order on a single line.

    Sample Input

    3
    1 2 3
    4 
    4 3 2 1 

    Sample Output

    0
    6
    大概意思:给有序数组里相邻的数字进行排序,算出排序时需要进行的最小步骤数。

     1 #include <bits/stdc++.h>
     2 #define ll long long
     3 using namespace std;
     4 int a[1010];
     5 int main(){
     6     int n;
     7     while(scanf("%d",&n)!=EOF){
     8         for(int i = 0; i < n; i ++){
     9             //scanf("%d",a[i]);
    10             cin>>a[i];
    11         }
    12         ll ans = 0;
    13         for(int i =1; i < n; i ++){ //13到17行为冒泡排序法
    14             for(int j = 0; j <n-1; j ++){
    15                 if(a[j]>a[j+1]){
    16                     ans++;
    17                     swap(a[j],a[j+1]);
    18                 }
    19             }
    20         }
    21         cout << ans << endl;
    22         //printf("")
    23     }
    24     return 0;
    25 }
  • 相关阅读:
    可爱精灵宝贝 DP/爆搜
    那些年留的坑
    吃某种零食ing
    NOIP模拟测试13
    NOIP模拟测试12
    NOIP模拟测试11
    大佬 (数学)
    BZOJ3331 BZOJ2013 压力
    LOJ2586 APIO2018 选圆圈
    BZOJ3398 牡牛和牝牛
  • 原文地址:https://www.cnblogs.com/bearkid/p/7134179.html
Copyright © 2011-2022 走看看