几种常见的算法:
前端面视常问的几种排序算法:冒泡,选择,插入,快排,二分搜索;除此之外还有归并排序,堆排序等,本文主要对前五种常见的排序算法进行详解。
1.冒泡排序
最简单的一种排序算法。假设长度为n的数组arr,要按照从小到大排序。则冒泡排序的逻辑为:对数组进行遍历将最大的元素冒泡到最后,然后对剩下的n-1个数再次进行冒泡,一直循环下去直到所有数冒泡结束。
冒泡排序两层循环,时间复杂度为O(n^2)
代码如下:
function Bubble(nums){
for(let i=0;i<nums.length;i++){
for(let j=0;j<nums.length-1-i;j++){
if(nums[j]>nums[j+1]){
var temp = nums[j]
nums[j] = nums[j+1]
nums[j+1] = temp
}
}
}
}
2.选择排序
假设长度为n的数组arr,要按照从小到大排序。对选择排序的基本思想描述为:从数组中选择最大的数与最后一位做交换,然后对剩下的n-1个数进行选择和交换,一直重复选择和交换,直到所有数字交换结束。
选择排序两层循环,时间复杂度为O(n^2)
代码如下:
function selectSort(arr) {
if (arr.length < 2) return arr;
for (let i = arr.length -