js数组的排序

<!doctype html>
<html lang="us">
<head>
	<meta charset="GBK">
	<title>jQuery UI Example Page</title>
	<script src="../js/jquery-1.9.1.js"></script>
	<script>
		var flSort={};
		flSort.index = 0;
		flSort.asc = -1;
		flSort.gzfl = function(){
			flSort.index = 0;
		}
		flSort.rwfl = function(){
			flSort.index = 1;
		}
		flSort.sort = function(a,b){
			
			var p = b[$.flSort.index] ? b[$.flSort.index] : " ";
			var q = a[$.flSort.index] ? a[$.flSort.index] : " ";
			 
			return (p-q) * $.flSort.asc  ;
				 
		} 
		flSort.splitArray=function(arr,p){
			var t;
			var len = arr.length;
			var split = []
			for(var i = 0; i < len; i++){
				if(t != arr[i][p]){
					t = arr[i][p];
					split.push(i);
				}
			}
			split.push(len);
			len = split.length;
			var s = 0;
			var r = [];
			var c;
			for(var i = 0; i < len; i++){ 
				var t = arr.slice(s,split[i]);
				if(t.length > 0){
					t.sort($.flSort.sort);
				}
				for(var j = 0; j < t.length; j++){
					r.push(t[j]);
				}
				s = split[i];
			} 
			return r;
		}
		var index = 0;
		function log(message){
			$("#log").append("<p>"+(++index)+"=\t"+message+"</p>");
		}
		jQuery.flSort = flSort;
		$(document).ready(function(){
			 var d = [];
			 for(var i = 0; i<1000; i++){
				var t = [];
				for(var j = 0; j < 3; j++){
					t.push(Math.ceil(Math.random()*15));
				}
				d.push(t);
			 }
			 //d = [[1,2,3],[1,3,10],[1,11,3],[2,7,7],[3,11,3],[4,5,2],[6,15,8],[6,10,7],[9,6,8],[9,3,4],[11,15,13],[11,9,10],[14,12,10],[14,6,4],[15,7,11]];
			 //d = [[1,22,3],[1,3,10],[1,11,3]];
         for(var i = 0; i < d.length; i++){
			d[i].splice(2);
		}
			var begin= new Date().getTime();
			$.flSort.index = 0;
			d = d.sort($.flSort.sort);
			$.flSort.index = 1
			d = $.flSort.splitArray(d,0);
			log("time = "+(new Date().getTime() - begin));


			$("div").each(function(){
				$(this).css("background-color","rgb("+Math.ceil(Math.random()*256)+","+Math.ceil(Math.random()*200)+","+Math.ceil(Math.random()*300)+")");
			}); 
			$("#sort2").html(d.join("<br/>")); 
		});
		




	</script> 


	 <style>
		div{float:left; width:400px; margin:10px;}
	 </style>
</head>
<body>
 <div id = "log"  ></div>


 <div id = "sort2"></div>
  <div id = "index"></div>
 <div id = "sort" ></div> 
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值