冒泡排序算法说明看吧。《基本思路》:反复遍历待排序数组,每次比较两个元素的大小,如果顺序不对,交换两个元素的顺序。对数组重复比较,直到排序完成。该算法实现了比较两个相邻元素的“基本步骤”。如果第一个大于第二个,交换位置;对每对相邻的元素重复第一步,从开始的第一对到最后的最后一对,使得最后的元素应该是最大的数;对除最后一个以外的所有元素重复以上步骤;重复步骤1~3,直到排序完成。"代码实现"/**外层循环控制需要比较的元素。比如第一次排序后,最后一个元素不需要比较,内循环负责比较两个元素,并将元素放在正确的位置_前端训练*/functionbubbleSort(arr){constlen=arr.lengthfor(leti=0;iarr[j+1]){[arr[j],arr[j+1]]=[arr[j+1],arr[j]]//交换位置}}}returnarr}console.log(bubbleSort([3,44,15,36,26,27,2,46,4,19,50,48]))//[2,3,4,15,19,26,27,36,44,46,48,50]《时间复杂度:O(n^2)》快速排序算法说明《快速排序》是对冒泡排序的一种改进算法,它是处理大数据效率最高、速度最快的排序算法之一。《基本思想》:是一种分而治之的算法,找到一个参考值,递归地将数据分解成包含较小元素和较大元素的不同子序列。该算法不断重复此步骤,直到所有数据都有序为止。算法实现“基本步骤”选择一个参考元素,将列表拆分为两个子序列;重新排序列表,将所有小于参考值的元素放在参考值前面,所有大于参考值的元素放在参考值后面;分别对较小元素的子序列和较大元素的子序列重复步骤1和2“代码实现”functionquickSort(arr){if(arr.length<=1)returnarrconstleft=[],right=[],current=arr.splice(0,1)for(leti=0;i=0;j--){if(arr[j-1]>tem){arr[j]=arr[j-1]}else{arr[j]=tembreak}}}returnarr}控制台.log(insertSort([3,44,15,36,26,27,2,46,4,19,50,48]))//[2,3,4,15,19,26,27,36,44,46,48,50]《时间复杂度O(n^2)》选择排序算法说明《选择排序》是一种简单直观的排序算法,《基本思想:》先选择序列中的最小值或最大值待排序,并存储在已排序序列的开始位置,然后继续从剩余未排序的elem中寻找最小或最大的元素ents,并将其放在已排序序列的末尾。依此类推,直到所有元素都排序完毕。该算法实现了“基本步骤”的初始状态:无序区域为R[1..n],有序区域为空;当第i次排序(i=1,2,3...n-1)开始时,当前的有序区域和无序区域分别为R[1..i-1]和R(i..n).这个排序过程从当前无序区中选出key最小的记录R[k],与无序区中的第一条记录R交换,使得R[1..i]和R[i+1..n)分别成为记录数增加的新有序区和记录数减少的新无序区;n-1遍结束,数组有序。《代码实现》/**先假设第一个元素最小,然后通过循环找到最小的元素,然后和第一个元素交换,再假设第二个元素,重复上面的操作*/functionselectSort(arr){letlen=arr.length,minIndex,temfor(leti=0;itj,tk=1;根据递增序列的个数k,对序列排序k次;每次排序,根据对应的Incrementti,将待排序的列分成若干个长度为m的子序列,对每个子列表直接插入排序。只有当增量因子为1时,整个序列才被当作一个表,表的长度就是整个序列的长度。《代码实现》函数shellSort(arr){varlen=arr.length;for(vargap=Math.floor(len/2);gap>0;gap=Math.floor(gap/2)){for(vari=gap;i=0&¤t=arr[i]?最大值:arr[i]c[arr[i]]=c[arr[i]]?c[arr[i]]+1:1//count}for(leti=min;i=0;i--){b[c[arr[i]]-1]=arr[i]c[arr[i]]--}returnb}console.log(countingSort([2,3,8,7,1,2,2,2,7,3,9,8,2,1,4]))//[1,1,2,2,2,2,2,3,3,4,7,7,8,8,9]"时间复杂度:O(n+k)"k表示输入元素在n个0之间与k整数基数排序算法之间的说明“基数排序”也是一种非比较排序算法,“基本思想:”先按低位排序,然后收集;然后按照高位排序,然后收集;依此类推,直到最高阶。有时候有些属性是有优先级的,先按低优先级排序,再按高优先级排序。最后的顺序是优先级高的在前,优先级高的和优先级低的在前。基数排序是基于分别排序和分别收集,所以比较稳定。算法实现“基本步骤”获取数组中的最大数,获取位数;arr为原数组,从最低位开始取每位,组成基数数组;对基数进行计数排序(使用计数排序适用于小范围数的特点);《代码实现》函数radixSort(arr,maxDigit){letcounter=[],mod=10,dev=1;for(leti=0;i