首页 > 编程知识 正文

js的数组有哪些常用方法,js数组排序方法

时间:2023-05-03 11:44:49 阅读:37431 作者:2249

1、鼓泡排序

以小顺序排序为例,气泡排序的原理是在两个循环中比较数组中的两个相邻元素。 是的,将大的元素放在后面,将元素放在后面,将元素的位置一步一步地调换,将最大的元素放在数组的末尾,内部循环循环一圈,基于外部循环将下一个大的元素放在数组的末尾,从而实现数组的逐步排序。 代码如下。

//冒泡排序vararr=[ 52,3,8,57,75,2,1 ]; for(varI=0; iarr.length; I ) for(varj=0; jarr.length-i; j () if ) arr[j]arr[j1] ) {var temp=arr[j]; arr[j]=arr[j 1]; arr[j 1]=temp; } }控制台. log (arr ); //[ 1,2,3,8,52,57,75 ]其中用一个变量temp替换两个相邻元素的位置,并循环它以使最大的元素位于数组的末尾。

2、快速排序

快速排序是递归调用函数对数组进行排序。 代码如下。

//功能快速排序(arr ) ) if ) ARR.Length=1) return arr; var temp=math.floor (arr.length/2 ); var left=[],right=[]; varnum=Arr.splice(temp,1 ) [0]; for(varI=0; i arr.length; I ) if(ARR[I]num ) left.push ) ARR[I]; }else{right.push(arr[I]; }returnquicksort(left ).concat (num,quicksort ) right ); } vararr=[ 5,2,1,10,8,12,40,26,30 ]; console.log (快速排序) arr ); //[ 1,2,5,8,10,12,26,30,40 ]其原理是首先创建递归函数。 也就是说,函数的返回值就是函数本身,递归函数将停止,直到满足条件为止。 当arr数组的长度小于或等于1时,这些函数将停止递归函数。 基本原理是首先找到数组中间元素的索引。 如果数组长度为双重,则缺省情况下提高值。 也就是说,缺省情况下,索引为数组的1/2长度,在基于索引进行的数组中间的值中创建两个空数组,用于放置小于该元素的值和大于该元素的值,然后通过循环数组进行确定。 如果数组的元素的值小于中间元素,则将其放置在左侧的数组中。 相反,将它放在右边的数组中,用函数将返回值设置为左边数组中间值,连接右边的数组,然后根据递归分别对左边和右边的数组执行前面的操作。 在数组长度小于或等于1之前,此时停止。 此时,调用函数后,如果传递一个数组,则自动返回数组排序后的新数组。 这就是快速排序的原理。

3、排序

//sort排序vararr=[ 8,12,312,4,5 ]; functionsortarray(N1,n2 ) { return n1-n2; }arr.sort(sortarray; console.log(arr )/[4、5、8、12、312]sort的默认排序按字符(即ascii字符)排序。 如果要更改默认排序方法,请添加自定义排序规则

functionsortarray(N1,n2 ) { return n1-n2; }如果n1小于n2,即n1-n2小于零,此函数返回小于零的值,表示数组按升序排列。

functionsortarray(N1,n2 ) { return n2-n1; }如果n1大于n2,即n1- n2大于零,则此函数返回大于零的值,表示数组按降序排列。

4、选择排序

选择排序原理后,可以选择数组中最大或最小的数量并将其放在开头,在一个循环中,然后选择第1级最大或最小的数量以获得所需的排序数组。

//排序vararr=[ 14,82,7,1,9,0 ]; for(varI=0; i arr.length - 1; I ) for(varj=I1; j arr.length; j () if ) arr[I]arr[j] ) { var tmp=arr[i]; arr[i]=arr[j]; arr[j]=tmp; } }控制台. log (arr ); //0,1,7,9,14,82 )选择排序也是用中间变量的方法变换数组元素的位置,使得最大或最小的元素一次从前到后排列。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。