Java教程

【学习打卡】第27天 数据结构和算法

本文主要是介绍【学习打卡】第27天 数据结构和算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法 - 搜索排序

排序和搜索是什么?

  • 排序:把某个乱序的数组升序或者降序
  • 搜索:找出数组中某个元素的下标

JS中的排序和搜索

  • js中的排序:数组的sort方法
  • js种的搜索:数组的indexOf方法

排序算法有哪些

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 归并排序
  • 快速排序
  • 等等…

搜索算法有哪些

  • 顺序搜索
  • 二分搜索
  • 等等…

冒泡排序

思路(升序)

  1. 比较相邻元素,如果第一个比第二个大,则交换他们
  2. 一轮下来保证最后一个是最大的
  3. 执行n-1轮,完成排序
Array.prototype.bubbleSort = function () {
  for (let i = 0; i < this.length - 1; i++) {
    for (let j = 0; j < this.length - 1 - i; j++) {
      if (this[j] > this[j + 1]) {
        const temp = this[j];
        this[j] = this[j + 1];
        this[j + 1] = temp;
      }
    }
  }
}

const arr = [6, 8, 5, 4, 3, 2, 1]
arr.bubbleSort()
console.log(arr)

时间复杂度:O(n^2)
空间复杂度:O(1)

这篇关于【学习打卡】第27天 数据结构和算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!