首页 > 编程知识 正文

使用js对数组进行排序,对数组进行排序

时间:2023-05-05 19:42:38 阅读:37399 作者:339

文章列表泡沫排序:插入排序:快速排序:

气泡排序:

执行一次内层循环,以比较数组中的两个相邻元素,并确定两个比较将比较大(小)的数量移动到数组末尾(开始),然后从数组末尾(开始)扫描到数组末尾(结束)的最大(最小)数量

代码演示:

functionxdddsh(arr ) for ) varI=0; iarr.length-1; I ) for(varj=0; jarr.length-i-1; j () if ) arr[j]arr[j1] ) /把大数字放在后面的var str=arr[j]; arr[j]=arr[j 1]; arr[j 1]=str; } } vararr=[ 3,5,1,2,7,8,4,5,3,4 ]; //console.log(arr; [3、5、1、2、7、8、4、5、3、4] xdddsh(arr ); //console.log(arr; [1、2、3、3、4、4、5、5、7、8]插入排序:将排序的数组分为两部分,每次从后面的部分中提取索引最小的元素并插入前面部分的适当位置

从第一个元素开始,该元素被认为已经排序;

取出下一个元素,在排序后的元素序列中从后向前扫描;

如果元素(已排序)大于新元素,则将元素移动到下一个位置。

重复步骤3,找到排序的元素小于或等于新元素的位置。

将新元素插入此位置后;

重复步骤2到5。

代码演示:

functioninsertsort(arr ) { let len=arr.length; let preIndex,current; for(letI=1; i len; I ) {预索引=I-1; current=arr[i]; while (pre index=0current arr [ pre index ] ) { arr[preIndex 1]=arr[preIndex]; 预索引- -; } arr[preIndex 1]=current; }返回arr; } vararr=[ 3,5,7,1,4,56,12,78,25,0,9,8,42,37 ]; 插入(arr; 快速排序:看完上面的内容后,不知道在实际工作中是否注意到数据量过大会导致排列复杂,在两次扫描中同时带来性能问题,但不用慌张,用快速排序的方法就可以解决。 快速排序可以改进冒泡排序:

实现的思路是,将一个数组的排序问题看作两个小数组的排序问题,以一个数为基准(中间数),小于基准的放在左边,大于基准的放在右边,小数组又继续看作小的两个数组,数组长度的大小

代码演示:

如果函数快速排序(arr )//数组长度小于1,则无需排序,直接返回if(arr.length=1) return arr; //pivot参考索引,长度一半的letpivotindex=math.floor (arr.length/2 ); 在//奇数项下找到//标准,将标准项从原始数组中删除letpivot=ARR.splice(pivotindex,1 ) [0]; //左右排列的let left=[]; let right=[]; //小于标准的为左, 将较大的称为rightARR.foreach(element={if ) element pivot (left.push ) element (else ) right.push (element ) ) element (element ) console.log (快速排序) arr ); //[ 3,4,5,44,56,66,67 ]

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