zoukankan      html  css  js  c++  java
  • 前端算法手动实现数字排序

    一、冒泡排序

    时间复杂度:O(n2)
    代码:

     1 var arr = [0, 1, 2, 6, 7, 10, 3]
     2 // 冒泡排序
     3 function bubbleSort(arr) {
     4     for (let i = 0; i < arr.length - 1; i++) { // 控制循环次数
     5         let isDone = true
     6         for (let j = 0; j < arr.length - i - 1; j++) { // 无序区域的循环次数
     7             if (arr[j] > arr[j + 1]) {
     8                 isDone = false
     9                 let temp = arr[j]
    10                 arr[j] = arr[j + 1]
    11                 arr[j + 1] = temp
    12             }
    13         }
    14         if (isDone === true) {
    15              // 优化冒泡排序,当中途已排好序时,不再继续尝试排序
    16             return arr
    17         }
    18     }
    19 }
    20 bubbleSort(arr)

    冒泡排序动态图演示:

     

    二、选择排序

    时间复杂度:O(n2)

    代码:

     1 // 选择排序
     2 let arr = [3, 2, 5, 3, 6, 1, 8, 0]
     3 
     4 function selectSort(arr) {
     5     for (let i = 0; i < arr.length - 1; i++) { // 遍历次数
     6         let minIndex = i // 假设起始索引对应的数值为最小
     7         let temp
     8         for (let j = i; j < arr.length; j++) { // 无序区域区域遍历次数
     9             if (arr[minIndex] > arr[j + 1]) {
    10                 minIndex = j + 1 // 选出无序区域最小的索引
    11             }
    12         }
    13         temp = arr[minIndex] // 存储最小的索引,并在下方进行交换
    14         arr[minIndex] = arr[i]
    15         arr[i] = temp
    16     }
    17     return arr
    18 }
    19 selectSort(arr)

    选择排序动态图演示:

    十大经典排序算法的图文演示
      这里极力推荐一位大佬写的一篇博客:https://www.cnblogs.com/onepixel/p/7674659.html

  • 相关阅读:
    flask 基础
    新的项目部署
    linux (01) linux基础
    linux (04) linux安装mysql
    linux (06) redis安装
    linux (09) nginx反向代理,负载均衡
    linux (08) nginx入门详解
    linux (07) redis详解
    linux(05) 编译安装py3
    spring-boot war包部署(二)
  • 原文地址:https://www.cnblogs.com/blucesun/p/13679488.html
Copyright © 2011-2022 走看看