• JavaScript中简单排序总结


    JavaScript中简单排序总结

    冒泡排序

    • 经典排序算法, 双重for循环
    • 在第二个for循环的时候, j < arr.len -1 -i , 这一步的优化很重要
        function bullSort(arr) {
          for (var i = 0; i < arr.length; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
              if (arr[j] > arr[j + 1]) { // 相邻元素两两对比
                var temp = arr[j + 1] // 相邻元素交换位置
                arr[j + 1] = arr[j]
                arr[j] = temp
              }
            }
          }
          return arr
        }
    

    选择排序

    • 每一次找到一个最小的数, 并放到最前面,
    • 下一次再找到的时候, 就忽略前面已经找好的数.
        function SelectSort(arr) {
          var len = arr.length
          var minIndex
          var temp
          for (var i = 0; i < len - 1; i++) {
            minIndex = i;
            for (var j = i + 1; j < len; j++) { 
              if (arr[j] < arr[minIndex]) { // 从每一个元素中找到最小的那个
                minIndex = j // 保存最小索引
              }
            }
            temp = arr[i]
            arr[i] = arr[minIndex]
            arr[minIndex] = temp
          }
          return arr
        }
    

    插入排序

    一旦发现不合适就不断的向前查找是关键

        function insertionSort(arr) {
          var len = arr.length
          var preIndex
          var 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
        }
    
  • 相关阅读:
    获取IPhone相册中图片的方法(包括获取所有图片)
    CocoaPods的安装与使用介绍
    屏幕截图
    图片水印(微博图片上面的个人签名)
    info.plist选项含义
    最苦恼的又重要的屏幕适配
    Redis
    python的约束库constraint解决《2018刑侦科题目》
    start to learn python!
    用户体验分析: 以 “南通大学教务管理系统微信公众号” 为例
  • 原文地址:https://www.cnblogs.com/zhangrunhao/p/7646183.html
Copyright © 2020-2023  润新知