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

  • 相关阅读:
    嵌入式系统编程和调试技巧
    使用Kotlin开发Android应用(II):创建新project
    2015 Multi-University Training Contest 2
    C#开发Unity游戏教程之游戏对象的属性变量
    Java开发project师案例-网络日志分析系统
    Flask
    Flask
    Flask
    Flask
    Flask
  • 原文地址:https://www.cnblogs.com/blucesun/p/13679488.html
Copyright © 2011-2022 走看看