美文网首页
JS实现常见算法

JS实现常见算法

作者: anefish | 来源:发表于2017-11-01 18:20 被阅读0次
  1. 冒泡排序
    要点:相邻元素两两对比,若前面大于后面,则交换位置。
function bubbleSort(arr) {
  var len = arr.length;

  for(var i=0; i<len; i++){
    for(var j=0; j<len-1-i; j++){
      if(arr[j] > arr[j+1]){
        var temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
      }
    }
  }

  return arr;
}
  1. 选择排序
    要点:从第一个元素开始,与其后面的元素对比,找到最小的互换位置。
function selectionSort(arr) {
  var len = arr.length;

  for(var i=0; i<len-1; i++){
    var minIndex = i;
    for(var j=i+1; j<len; j++){
      if(arr[j] < arr[minIndex]){
        minIndex = j;
      }
    }
    var temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }

  return arr;
}
  1. 插入排序
    要点:从第二个元素开始,暂存当前元素。倒序遍历前面的元素,如果大于当前元素,则将其往后移动一位,直到跳出遍历,将之前暂存的元素插入到跳出遍历时的后一位。
function insertionSort(arr) {
  var len = arr.length;

  var preIndex, current;
  for(var i=1, i<len; i++){
    preIndex = i - 1;
    current = arr[i];
    while (preIndex >=0 && arr[preIndex] > current) {
      arr[preIndex+1] = arr[preIndex];
      preIndex --;
    }
    arr[preIndex+1] = current;
  }

  return arr;
}
  1. 二分查找
function binarySearch(arr, num, start, end) {
  var start = start || 0,
      end = end || arr.length;

  var mid = Math.floor((start + end) / 2);
  var midVal = arr[mid]

  if (start >= end) {
    return false
  }

  if (midVal === num) {
    return mid
  } else {
    if (midVal > num) {
      return binarySearch(arr, num, 0, mid)
    } else {
      return binarySearch(arr, num, mid + 1, arr.length)
    }
  }
}
  1. 遍历二叉树
    先序遍历
var preTraverse = function (node) {
  if (node) {
    console.log(node.value);
    preTraverse(node.left);
    preTraverse(node.right);
  }
}

相关文章

  • JS实现常见算法

    冒泡排序要点:相邻元素两两对比,若前面大于后面,则交换位置。 选择排序要点:从第一个元素开始,与其后面的元素对比,...

  • JS实现的常见算法

    1.冒泡排序 2.简单选择排序 3.直接插入排序 4.希尔排序 5.去重算法 6.快速排序

  • 常见算法的js实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • 常见算法的 js 实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • 常见算法前端JS实现

    字符串操作 判断回文字符串 翻转字符串 思路1:反向遍历字符串 思路2:转化成array操作 生成指定长度的随机字...

  • 前端常见算法的JS实现

    排序算法1、冒泡排序 2、快速排序 3、二路归并 字符串操作1、判断回文字符串 2、翻转字符串思路一:反向遍历字符...

  • 常见算法前端JS实现 — 排序

    1.排序算法 1.1 冒泡排序 1.2 快速排序 1.3 二路归并

  • 用JavaScript实现常见的排序算法

    前戏 复习了一些比较常见的排序算法,用JS实现,带一些实现思路。 无图,无脑贴代码。。 比较排序 冒泡排序 比较相...

  • JS常见算法

    1、JavaScript中两个数组的拼接2、使用apply()找出数组中最大值

  • JavaScript模拟图操作

    JS操作实现无向网的Prim算法 最后输出结果如下: 其中例子中的图如下: JavaScript实现Dijkstra算法

网友评论

      本文标题:JS实现常见算法

      本文链接:https://www.haomeiwen.com/subject/nqigpxtx.html