js数组快速排序

<script type="text/javascript">
var arr = [1, 2, 3, 54, 22, 1, 2, 3];
function quick(arr) {
if (arr.length <= 1)
return arr;
var proiindex = Math.floor(arr.length / 2);
var proift = arr.splice(proiindex, 1)[0]; //找基准,并把基准从原数组删除
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] <= proift) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quick(left).concat([proift], quick(right));
}
document.write(quick(arr));
</script>

时间: 2024-12-27 08:16:27

js数组快速排序的相关文章

js数组快速排序/去重

数组的排序 var arr = []; for(var i=0;i<20;i++){      arr.push(Math.floor(Math.random()*100))  }  //生成一个无序的arr数组  function sort(arr,start,end){      //数组长度为1      if(start == end ){          return [arr[start]]      }else if(start == end-1){          //数组长

js数组增删查改

一.插入 1. 顺序插入 1 function Insert(arr, n, data){ 2 3 //若插入数据位置不在表尾 4 if (n < arr.length) 5 { 6 //将要插入位置之后元素依次向后移动一位 7 for (var i = seqList.ListLen - 1; i >= n; i--) 8 { 9 seqList.ListData[i + 1] = seqList.ListData[i]; 10 } 11 } 12 //将数据插入到位置为n的位置并将数组的长

js实现快速排序

js实现快速排序(in-place)简述 快速排序,又称划分交换排序.以分治法为策略实现的快速排序算法. 本文主要要谈的是利用javascript实现in-place思想的快速排序 分治法: 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式.字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并.(摘自维基百科) 快速排序的思想 数组中指定一个元素作为标尺,比它大的放到该元素后面,比它小的

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

js数组知识

js数组 shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined Javascript代码 var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 unshift:将参数添加到原数组开头,并返回数组的长度 Javascript代码 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总

js数组的操作

转载 js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

js数组小结

1.js数组使用sort()排序 var a = ["1","12","3","4","0"]; document.write(a.sort(function(a,b){ //实现升序排序 return a - b; })); 2.js使用数组实现一些数据结构 栈        push() , pop() 队列 shift() ,  push() 反向队列    unshift() , pop() 其中

js 数组,字符串,JSON,bind, Name

/** * Created by W.J.Chang on 2014/5/23. */ // 判读是否是数组的方法 console.log(Array.isArray(new Array)); console.log(Array.isArray([])); var arr = [1,2,3]; // 遍历方法 arr.forEach(function (v){ console.log(v); }); console.log("---------------------"); // 过滤

python数组与js数组(list)对比

本文和大家分享的是python数组与js数组相关内容,一起来看看吧,希望对大家学习python有所帮助. 创建 基本相同 js var person = ['xiaohong','wangwei','liudehua']; python person=['xiaohong','wangwei','liudehua'] 访问元素 基本相同 js person[0] //xiaohong python >>> person[0]'xiaohong' 切片 这块不一样,js用slice函数,p