博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡和快速排序
阅读量:7069 次
发布时间:2019-06-28

本文共 892 字,大约阅读时间需要 2 分钟。

// 公用数组var arr = [1,2,4,2,1,9,8,5,3,6];// 冒泡排序// 思路,前一个数依次和后面的数比较,较小的往前移,需要两层循环, 第一层循环到倒数第二位for (var i = 0; i < arr.length - 1; i++) {  for (var j = i+1; j < arr.length; j++){    if (arr[i] > arr[j]) {      var temp = arr[i];      arr[i] = arr[j];      arr[j] = temp;    }    }}// return [1, 1, 2, 2, 3, 4, 5, 6, 8, 9]// 快速排序// 思路:先找到一个基准点(一般指数组的中部),然后数组被该基准点分为两部分,依次与该基准点数据比较,如果比它小,放左边;反之,放右边。// 左右分别用一个空数组去存储比较后的数据。最后递归执行上述操作,直到数组长度<=1;function sort(arr) {	if (arr.length<=1) return arr;		var midIndex = Math.floor(arr.length/2);	var midIndexVal = arr.splice(midIndex, 1);// 基准点元素数组	var left = [], right = []; // left存放比基点小的数组,right相反	for(var i = 0; i < arr.length; i++) {		if (arr[i] < midIndexVal[0]) {			left.push(arr[i])		}else {			right.push(arr[i])		}				console.log("第" +(++timer) + "次")	}		// 递归执行以上操作,对左右两个数组进行操作,知道数组长度为<=1;	return sort(left).concat(midIndexVal, sort(right))	}复制代码

转载地址:http://eqhll.baihongyu.com/

你可能感兴趣的文章
Java课程作业01
查看>>
#HTTP协议学习# (十)拓展-HTTPS协议
查看>>
电梯调度 最终版
查看>>
mysql索引详解(转)
查看>>
php html 静态化 缓存
查看>>
测试架构师修炼之道:“秘书九段”的故事 - 延伸至测试六段
查看>>
Silverlight数据验证
查看>>
Ubuntu始终是外国的,为什么大家这么力推?
查看>>
iOS开发滚动视图UIScrollView
查看>>
SSH服务及其扩展(sshpass和expect)
查看>>
mysql中的锁
查看>>
会话Cookie与session的关系
查看>>
Blend ---- 自定义ImageButton(图片按钮)
查看>>
04-模板层
查看>>
Beta冲刺-第二天
查看>>
call 和 apply方法解析
查看>>
Update emacs to 23.2 on Ubuntu
查看>>
C#中结构(struct)与类(class)的区别
查看>>
mount loop最大数的调整
查看>>
Android的消息机制(1)
查看>>