题意:冒泡排序,最小交换数的前提下有多少用方案把数组变成从小到大的顺序,

  注意: 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;
}

  

最新文章

  1. mvc+webapi 单元测试
  2. android自定义控件(5)-实现ViewPager效果
  3. #pragma 的使用
  4. Winform退出程序
  5. C#EasyHook例子C# Hook 指定进程C#注入指定进程 z
  6. Objective-C 【构造方法(重写、场景、自定义)、super】
  7. 双外边距浮动bug;3像素文本偏移bug;IE6以下相对定位中的绝对定位bug
  8. Struts2标签--S:iterator----jsp页面遍历双层list
  9. 查看.ssh文件在哪
  10. iOS - UIImageView 动画
  11. 使用Python3爬虫抓取网页来下载小说
  12. Python#常用的模块和简单用法
  13. chattr文件锁
  14. spring的4种事务特性,5种隔离级别,7种传播行为
  15. Deep Learning Terminologies
  16. 作为非计算机专业的学生,觉得 C 语言远比其他语言易于上手,正常吗?
  17. AndroidStudio工具将Module项目导出成Jar和arr库
  18. Android build.gradle
  19. java使用Redis8--3.0集群
  20. Packet Tracer 5.0 构建CCNA实验(3)—— 路由器实现vlan间通信

热门文章

  1. GPIO口的输入输出模式
  2. bind() 函数兼容
  3. The Suspects 并查集
  4. BC32(hdu5182~5185)
  5. 使用animate()完成修改图片src切换图片的动画效果
  6. 转 update关联更新在sqlserver和oracle中的实现
  7. Jmeter的CSV参数化策略
  8. python3 获取int最大值
  9. yii 获取当前模块名、控制器名 、动作名
  10. VS2010/MFC编程入门系列教程 (转)