剑指Offer-数组全排列
来源:互联网 发布:php 判断是否刷新页面 编辑:程序博客网 时间:2024/06/13 09:53
1 2 3 4
第一位
- 1不动 1 -》2 3 4的全排
- 1,2置换 2-》1 3 4的全排
- 1,3置换 3-》2 1 4的全排
- 1,4置换 4-》2 3 1的全排
第二位,第三位。。依次类推
注意每次换回去要再换回来
import java.util.Arrays;//数组全排列 Evan XU-TJUclass AllSort{ public static void main(String[] args) { int array[] = {1, 2, 3,4}; allSort(array,0,array.length-1); } public static void allSort(int array[],int start,int end){ if (start>=end){ //ToDo System.out.println(Arrays.toString(array)); return; } allSort(array,start+1,end); //保持不动 for (int i = start+1; i <=end ; i++) { swap(array, start, i); //分别交换 allSort(array,start+1,end); //后面的继续排列 swap(array,start,i); //交换再换回来 } } public static void swap(int array[],int i,int j){ int tmp = array[i]; array[i] = array[j]; array[j]=tmp; }}
[1, 2, 3, 4][1, 2, 4, 3][1, 3, 2, 4][1, 3, 4, 2][1, 4, 3, 2][1, 4, 2, 3][2, 1, 3, 4][2, 1, 4, 3][2, 3, 1, 4][2, 3, 4, 1][2, 4, 3, 1][2, 4, 1, 3][3, 2, 1, 4][3, 2, 4, 1][3, 1, 2, 4][3, 1, 4, 2][3, 4, 1, 2][3, 4, 2, 1][4, 2, 3, 1][4, 2, 1, 3][4, 3, 2, 1][4, 3, 1, 2][4, 1, 3, 2][4, 1, 2, 3]
运行结果:
阅读全文
0 0
- 剑指Offer-数组全排列
- 剑指offer 实现数组的全排列
- 剑指Offer------字符串的排列(全排列)
- 剑指offer 大数问题 全排列
- 剑指offer系列-T12_1全排列
- 剑指offer 28字符串全排列
- 剑指offer:字符串的全排列
- 剑指offer 28. 字符串的全排列
- 剑指offer:字符串的排列(字符串全排列)
- 剑指offer 之 字符串的全排列、全组合
- 数组的全排列
- java数组全排列
- 数组的全排列
- 全排列(数组)
- 数组的全排列
- 数组的全排列
- 数组全排列
- 数组全排列
- vue项目中引入外部css以及js文件的方法
- Java POI 导入Excel
- 【算法】之直接插入排序
- Unity之GPS定位详解
- 查看或修改Git的用户名和邮箱
- 剑指Offer-数组全排列
- Div+Css布局--frameSet布局
- Hoxx vpn
- Python 类的定义和实例化,类继承
- android 手机无线调试
- COCOS-2d-x学习之路(Lua)
- Vivify动画库
- JS 去重与去空值
- 在windows下静默安装JDKJRE并指定安装目录