算法 - 搜索排序
排序和搜索是什么?
- 排序:把某个乱序的数组升序或者降序
- 搜索:找出数组中某个元素的下标
JS中的排序和搜索
- js中的排序:数组的sort方法
- js种的搜索:数组的indexOf方法
排序算法有哪些
- 冒泡排序
- 选择排序
- 插入排序
- 归并排序
- 快速排序
- 等等…
搜索算法有哪些
- 顺序搜索
- 二分搜索
- 等等…
冒泡排序
思路(升序)
- 比较相邻元素,如果第一个比第二个大,则交换他们
- 一轮下来保证最后一个是最大的
- 执行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)