排列问题的其中一种解法
来源:互联网 发布:mac eclipse 调试 编辑:程序博客网 时间:2024/06/06 08:27
实现代码:
#include<iostream>using namespace std;const int maxNumber = 5;void Perm(int list[], int direct[], int number){int num = number;int index = -1;while (num > 0){//寻找num的下标for (int i = 0; i < number; i++){if (list[i] == num){index = i;break;}}//判断num是否的活动数if (direct[num - 1] == 0 && index == 0){num--;}else if (direct[num - 1] == 0 && index > 0){if (list[index] > list[index - 1]){int temp = list[index];list[index] = list[index - 1];list[index - 1] = temp;for (int i = 0; i < number; i++){cout << list[i] << " ";}cout << endl;//改变所有比num要大的数的方向for (int i = num; i < number; i++){direct[i] = direct[i] ^ 1;}//重置numnum = number;}else{num--;}}else if (direct[num - 1] == 1 && index == number - 1){num--;}else if (direct[num - 1] == 1 && index < number - 1){if (list[index] > list[index + 1]){int temp = list[index];list[index] = list[index + 1];list[index + 1] = temp;for (int i = 0; i < number; i++){cout << list[i] << " ";}cout << endl;//改变所有比num要大的数的方向for (int i = num; i < number; i++){direct[i] = direct[i] ^ 1;}//重置numnum = number;}else{num--;}}}}int main(void){int list[maxNumber];int direct[maxNumber];for (int j = 0; j < maxNumber; j++){list[j] = j + 1;//direct对于的是每个数的方向,0为向左,1为向右direct[j] = 0;}for (int i = 0; i < maxNumber; i++){cout << list[i] << " ";}cout << endl;Perm(list, direct, maxNumber);return 0;}
0 0
- 排列问题的其中一种解法
- 利用全排列八皇后问题的一种解法
- 一种背包问题的解法
- 糖果问题的一种解法
- 八皇后问题的全排列解法
- 八皇后问题的全排列解法
- 扑克牌排列问题解法
- "中国象棋将帅问题"的一种解法
- 打靶问题的一种递归解法
- 八皇后问题的一种解法
- 特殊的组合问题(另外一种解法)
- 0-1背包问题的一种解法
- 数字覆盖问题的一种解法
- 一种通用的SingleNumber问题解法
- 全排列的解法
- MFC内存泄漏的问题的其中一种情况
- 关于Ubuntu的磁盘空间不足其中的一种问题
- 对求解“皇后排列问题”的一个新解法!
- Mybatis错误:Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2]
- C语言——类型限定词
- 电话操作-JSON解析-图片下载工具类
- Android Api Demos登顶之路(101)View-->AutoComplete:Multiple items
- 01--初步认识Java
- 排列问题的其中一种解法
- 简析安卓开发之activity(sumzom)
- Android Activity应用窗口的创建过程分析
- hdu1040 As Easy As A+B (排序)
- Zedboard(1): ubuntu-12.04.5-desktop-amd64.iso下载与自带wubi安装WIN7+ubuntu双系统
- 【转】Linux下如何拷贝整个目录下的所有文件 .
- 简单实现利用EasyTouch实现物体的跳跃
- iOS多线程之GCD-NSOperation对比总结
- 我的测试故事①