UVA - 299 - Train Swapping

8 篇文章 0 订阅

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=235


题意:

    火车货物进行排序,升序;其实就是对数组进行排序操作。


解题:

    对每个数组进行冒泡排序,并记录次数。水~


#include <iostream>
#include <stdio.h>
using namespace std;

// #define LOCAL_TEST

const int MAXN = 50;

int main()
{
#ifdef LOCAL_TEST
	freopen("f:\\in.txt", "r", stdin);
	freopen("f:\\out.txt", "w+", stdout);
#endif
	int nCase;
	int szNum[MAXN];

	// get number of case
	cin >>nCase;

	while ( nCase-- )
	{
		// get all data, save to szNum
		int n;
		cin >>n;
		for ( int i=0; i<n; i++ )
			cin >>szNum[i];

		// bubble method and count swaping
		int nCount = 0;
		for ( int i=0; i<n; i++ )
		{
			for ( int k=i+1; k<n; k++ )
				if ( szNum[i] > szNum[k] )
				{
					int tmp = szNum[i];
					szNum[i] = szNum[k];
					szNum[k] = tmp;
					nCount++;
				} // end if
		} // end for

		// output
		cout <<"Optimal train swapping takes " <<nCount <<" swaps." <<'\n';		
	} // end while

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值