uva-331-枚举-交换的方案数
2024-08-25 21:30:27
题意:冒泡排序,最小交换数的前提下有多少用方案把数组变成从小到大的顺序,
注意: 3 2 1
3的下表是1 2的是2 1的是3 交换 3 2,那么第一个交换数是1
最小交换数=逆序数的和
那么,只要我们不做无用的交换,交换次数一定是最小的
#include<stdio.h>
#include<iostream>
#include<sstream>
#include<queue>
#include<map>
#include<memory.h>
#include <math.h>
#include<time.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int n;
int a[10];
int total = 0;
void swap(int s, int e)
{
int t;
t = a[s];
a[s] = a[e];
a[e] = t;
}
int ok = 0;
int search()
{
for(int i = 0; i < n - 1; i++)
{
if(a[i] > a[i + 1])
{
swap(i,i+1);
ok=1;
search();
ok=0;
swap(i,i+1);
}
}
if(ok)
total++; return 0;
}
int main()
{
freopen("d:\\1.txt", "r", stdin);
string str="There are %d swap maps for input data set %d.\n";
int t = 0;
while (cin >> n && n)
{
total = 0;
++t;
for(int i = 0; i < n; i++)
cin >> a[i];
search();
printf(str.c_str(),total,t);
}
return 0;
}
最新文章
- mvc+webapi 单元测试
- android自定义控件(5)-实现ViewPager效果
- #pragma 的使用
- Winform退出程序
- C#EasyHook例子C# Hook 指定进程C#注入指定进程 z
- Objective-C 【构造方法(重写、场景、自定义)、super】
- 双外边距浮动bug;3像素文本偏移bug;IE6以下相对定位中的绝对定位bug
- Struts2标签--S:iterator----jsp页面遍历双层list
- 查看.ssh文件在哪
- iOS - UIImageView 动画
- 使用Python3爬虫抓取网页来下载小说
- Python#常用的模块和简单用法
- chattr文件锁
- spring的4种事务特性,5种隔离级别,7种传播行为
- Deep Learning Terminologies
- 作为非计算机专业的学生,觉得 C 语言远比其他语言易于上手,正常吗?
- AndroidStudio工具将Module项目导出成Jar和arr库
- Android build.gradle
- java使用Redis8--3.0集群
- Packet Tracer 5.0 构建CCNA实验(3)—— 路由器实现vlan间通信