首页 > 代码库 > JavaScript 快速排序
JavaScript 快速排序
<script> var stu = [9,8,5,4,6,2,3,1,7,10]; //创建数组 console.log(stu); //打印 function stort(stu){ //定义函数传入数组 if(stu.length>1) //判断数组的长度大于1才执行循环 { var c = parseInt((stu.length+1)/2); //数组长度加1除以二 var center = stu.splice(c,1)[0]; //找到数组中间位置的值 var left=[],right=[]; //定义左右空数组 for(var i=0;i<stu.length;i++) //开始循环遍历 { if(stu[i]<center) { left.push(stu[i]); } //如果小于数组中间位置的值就放入left数组中 else { right.push(stu[i]); } //负责大于数组中间位置的值就放入right数组中 } return stort(left).concat(center,stort(right)) //返回重新排序left数组在连接中间位置的值和right数组 }else{ return stu; //否则返回stu数组 } } stu = stort(stu); //重新排序并保存,因为concat方法不会改变原数组 console.log(stu); //控制台打印输出 </script>
1.在数组中选择中数组长度+1 /2 然后下取整获得中间的元素作为基准
2.对数组进行遍历,小于中间的元素都移到左边的数组,大于中间的元素都移到右边的数组
3.对中间 左边和右边的两个子集,不断重复前两步,直到所有子集只剩下一个元素为止
4.然后用concat方法连接左右数组和中间的值
JavaScript 快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。