JS练习题②:数组的全排序
来源:互联网 发布:linux创建多个文件 编辑:程序博客网 时间:2024/06/05 16:27
练习题的题目是:【对['a','b','c']进行全排序】
1、方法1:
/* 全排列(递归交换)算法的实现思路 1、将第一个位置分别放置各个不同的元素; 2、对剩余的位置进行全排列(递归); 3、递归出口为只对一个元素进行全排列。 */ function funOne(text){ (function fn(n){ //为第n个位置选择元素 for(var i=n; i<text.length; i++){ swapChar(text, i, n); //判断数组中剩余的待全排列的元素是否大于1个 if(n+1 < text.length-1){ fn(n+1); //从第n+1个下标进行全排列 }else{ showResult(text); //显示一组结果 } swapChar(text,i,n); } })(0); };// 交换function swapChar(text, i, j){if(i != j){var temp = text[i]; text[i] = text[j]; text[j] = temp; } };// 显示var count = 0; function showResult(text){console.log("Line "+ (++count) +": "+ text); };在控制台中执行方法,funOne(["a","b","c"])
输出的结果为::
2、方法2:
function funTwo(test){for(var i=test.length; i--;){for(var j=test.length; j--;){for (var k=test.length; k--;){if(test[i]!==test[j] && test[j]!==test[k] && test[i]!==test[k]){console.log(test[i] + test[j] + test[k]);} }}}};输出结果就是abc的全排序。
这里是已知test.length = 3
0 0
- JS练习题②:数组的全排序
- js数组的排序
- js数组的排序
- js数组的排序
- [华为机试练习题]21.二维数组的列排序
- 一道字符数组的全排序问题
- 【LintCode】数组的全排序(1)
- js 二维数组的排序
- js 对象数组的排序
- js中数组的排序
- js中数组的排序
- js中数组的排序
- JS数组排序的问题
- js中数组的排序
- js中数组的排序
- js 数组的排序方法
- js 数组的sort排序
- JS简单的数组排序
- linux设置代理上网
- OC的内存管理
- redis
- iOS 新特性分列式 之 iOS 6.x - 主要内容:自动布局、集合视图、UI 状态保持
- android 添加一个简单的延时
- JS练习题②:数组的全排序
- jquery表单操作
- Linux学习篇之---scp命令
- 14.10.2 Performance and Concurrency Considerations for Online DDL 在线DDL的性能和并发考虑
- Xcode 7 缺少 *.dylib库的解决方法
- html5中new Date在ios中出现Invalid Date
- Linux学习笔记(十六、查看登录用户信息)
- Wait 和Pulse 等待和暂停的信号
- android 设置全局的页面切换动画问题