iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

c++競程30天系列 第 4

Day 04 Uva299 - Train Swapping

  • 分享至 

  • xImage
  •  

#1Uva299 - Train Swapping

  • 題義
    *此題會給一維陣列,輸出需要交換多少次以排好升序。
  • 解法
    1.跑一個迴圈,相鄰兩數做比較,如果左數大於右數就交換並記數。
#include <bits/stdc++.h>
using namespace std;

int main() {
    int t,n,x;
    cin>>t;
    while(t--){
        cin>>n;
        vector <int> v;
        for(int i=0;i<n;i++){
            cin>>x;
            v.push_back(x);
        }
        int ans=0;
        for(int i=0;i<v.size();i++){
            for(int j=i+1;j<v.size();j++){
                if(v[i]>v[j]){
                    swap(v[i],v[j]);
                    ans++;
                }
            }
        }
        cout<<"Optimal train swapping takes "<<ans<<" swaps."<<endl;
    }
}

上一篇
Day 03 Uva272 - TeX Quotes
下一篇
Day 05 Uva10019 - Funny Encryption Method
系列文
c++競程30天9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言