首页 > 编程 > JavaScript > 正文

JavaScript实现数组全排列、去重及求最大值算法示例

2019-11-19 13:23:25
字体:
来源:转载
供稿:网友

本文实例讲述了JavaScript实现数组全排列、去重及求最大值算法。分享给大家供大家参考,具体如下:

1、全排列(递归)

function permutation(arr){  if (arr.length == 1)    return arr;  else if (arr.length == 2)    return [[arr[0],arr[1]],[arr[1],arr[0]]];  else {    var temp = [];    for (var i = 0; i < arr.length; i++) {      var save = arr[i];      arr.splice(i, 1);//取出arr[i]      var res = permutation(arr);//递归排列arr[0],arr[1],...,arr[i-1],arr[i+1],...,arr[n]      arr.splice(i, 0, save);//将arr[j]放入数组,保持原来的位置      for (var j = 0; j < res.length; j++) {        res[j].push(arr[i]);        temp.push(res[j]);//将arr[j]组合起来      }    }    return temp;  }}

2、数组去重

方法一:

function norepeat(contents) {  var norepeatContents = [];  for (var i = 0; i < contents.length; i++) {    if(norepeatContents.indexOf(contents[i]) == -1)      norepeatContents.push(contents[i]);  }  return norepeatContents;}

方法二:

function norepeat(contents) {  var norepeatContents = [], hash = {};  for (var i = 0; i < contents.length; i++) {    if(!hash[contents[i]]) {      norepeatContents.push(contents[i]);      hash[contents[i]] = true;    }  }  return norepeatContents;}

3、求数组最大数

方法一:

function findMax(arr) {  var max = arr[0];  for (var i = 1; i < arr.length; i++) {    if (arr[i] > max)      max = arr[i];  }  return max;}

方法二:

function findMax(arr) {  return Math.max.apply(Math, arr);}

PS:这里再为大家提供几款相关工具供大家参考使用:

在线去除重复项工具:
http://tools.VeVB.COm/code/quchong

在线文本去重复工具:
http://tools.VeVB.COm/aideddesign/txt_quchong

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.VeVB.COm/aideddesign/paixu_ys

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表