递归全排列
来源:互联网 发布:手机淘宝如何买彩票 编辑:程序博客网 时间:2024/06/01 09:46
题记:
熟悉递归的使用,利用递归输出1-n 所有全排列可能性:
方法一:
import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner read = new Scanner(System.in); int n = read.nextInt(); int [] array = new int[n]; permulation(array,n,0); } public static void permulation(int [] array, int len,int start){ int i = 0; boolean flag = true; //一次排列完成,输出结果 if(len == start){ for(i =0;i<len;i++){ System.out.print(array[i]+" "); } System.out.println(); } else{ for (i = 1; i <= len; i++) { flag = true; for (int j =0 ;j <= start;j++){ //控制检查元素的循环 if(i == array[j]){ //在赋值前进行元素检查,如果元素已经存在则不赋值跳出循环 flag = false; break; } } if(flag){ array[start] = i; permulation(array , len, start+1); } } } }
方法二:
public class Main{ public static void permulation(int[] array, int start, int length) { int i; if (start == length) { for (i = 0; i < length; i++) System.out.print(array[i] + " "); System.out.println(); } else { for (i = start; i < length; i++) { swap(array, start, i); permulation(array, start + 1, length); swap(array, start, i); } } } public static void swap(int[] list, int start, int i) { int temp; temp = list[start]; list[start] = list[i]; list[i] = temp; } public static void main(String[] args) { int array[] = new int[]{1,2,3,4,5,6,7,8,9}; permulation(array, 0, array.length); }}
阅读全文
0 0
- 递归--全排列
- 全排列递归算法
- 递归 全排列 问题
- 全排列递归算法
- 全排列算法-递归
- 全排列,递归实现
- 递归实现全排列
- 递归输出全排列
- 递归应用-全排列
- 递归实现全排列
- 全排列递归算法
- 全排列递归算法
- 递归全排列
- 递归写全排列
- 递归之全排列
- 递归枚举全排列
- 全排列递归算法
- 全排列,递归。
- Python机器学习(一)--Numpy基础
- 实现类似百度页面的自适应
- rabbitMQ消息中间件
- valueList简介
- 总线_设备_驱动注册流程详解
- 递归全排列
- Luminar 2018(图片后期处理软件)官方破解版V2018.1.0.1.1043下载 | luminar photo editor
- Java集合框架练习
- Error creating bean with name 'com.mycompany.content.service.ContentCategoryService': Cannot resolve
- AbstractStringBuilder源码分析
- django 错误集合
- PREV-3 带分数
- 1.Java中的按位操作符
- MySQL存储引擎--MyISAM与InnoDB区别