数组排序是前端面试中经常出现的问题,但是大家经常使用的可能是sort排序,所以总结了两种排序方法,并加上sort排序进行了写。
第一种方法:冒泡排序
逻辑步骤:
1、双for循环加if判断
2、依次取数组中的一项与数组中的一项进行比较运算,满足判断条件时,交换两项的位置。
letarr=[ 9,5,1,4,8,6,2,7,3,0,'2','3']; 判断是否存在函数排序(a )//数组,如果存在,则数组长度var arrLength=a a.length //双循环for(letI=0; i arrLength - 1; I ) for(letj=I1; j arrLength; j ) (/if判断为取一个项与数组的各项进行比较,大的为正序,小的满足逆序if(a[I]a[j] ) /判断条件时,使用ES6进行代入交换位置[a[i],a [ j ] ]=[ }; 返回a; } 第二种方法:插入法排序
插入排序和气泡排序都使用双重的for循环进行if判断。 插入法排序比较数组的后一项和前一项,如果符合条件则交换位置。 气泡排序比较数组的前一项和后一项。 接下来看代码
功能排序(a ) vararrLength=aa.Lengthfor ) letI=1; i arrLength; I ) for(letj=I; j 0; j-- } { if (a [ j ] a [ j-1 ] ) { [ a [ j ],a[j - 1]]=[a[j - 1],a[j]] }; (; (; 返回a; } 第三种方法:sort排序
功能排序(a ) returna.sort ) ) a,b )=)/a-b正向b - a反向返回a-b; }}排列排序到此为止,如果大家有什么其他的方法,也许信息也可以用悄悄话说,大家一起学习,一起进步。