手记

【九月打卡】第6天 冒泡排序

课程名称:JavaScript版数据结构与算法
课程章节:第11章 进阶算法之“搜索排序”
主讲老师:lewis

课程内容:

今天学习的内容包括:
11-1 排序和搜索简介——排序算法和搜索算法在JS中的常用和介绍。
11-2 JavaScript 实现:冒泡排序——通过双层for循环,将相邻数据比对互换。

课程收获:

排序和搜索简介

排序和搜索时什么?

1、排序:把某个乱序的数组变成升序或则降序的数组。
2、搜索:找出数组中某个元素的下标。

JS中的排序和搜索

1、JS中的排序:数组的sort方法。
2、JS中的搜索:数组的indexOf方法。

排序算法

1、冒泡排序
2、归并排序
3、选择排序
4、快速排序
5、插入排序

搜索算法

1、顺序搜索。
2、二分搜索。

冒泡排序

1、比较所有相邻元素,如果第一个比第二个大,则交换它们。
2、一轮下来,可以保证最后一个数是最大的。
3、使用原型链挂载我们的冒泡排序方法。

冒泡排序的时间复杂度

1、使用双层for嵌套循环。
2、时间复杂度:O(n^2)。
3、第一层for循环是循环n-1次,第二层for循环是对数组进行相邻元素比对互换。
4、this.length - j 为循环时只互换比对剩余的数组,提升性能。

for (let j = 0; j < this.length - 1; j++) {
    for (let i = 0; i < this.length - j - 1; i++) {
      if (this[i] > this[i + 1]) {
        const temp = this[i]
        this[i] = this[i + 1]
        this[i + 1] = temp
      }
    }
  }

今天学习了 搜索排序的冒泡排序,之前有看过和学习冒泡排序,感觉异常熟悉,但是核心也忘记的差不多了,还是要多多复习,多多应用,才能熟记于心,应用到日常开发之中。今天先到这把,对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

0人推荐
随时随地看视频
慕课网APP