课程名称: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
}
}
}
今天学习了 搜索排序的冒泡排序,之前有看过和学习冒泡排序,感觉异常熟悉,但是核心也忘记的差不多了,还是要多多复习,多多应用,才能熟记于心,应用到日常开发之中。今天先到这把,对自己说一句,加油😀~
坚持打卡,坚持学习!明天见💪~