Spiga

快速排序JS代码

2010-09-06 12:04 by 普若伽门, 182 visits, 收藏, 编辑

网上转了一圈,看到各种变种的快排程序,却没有标准快排的示例代码,于是自己填了段,做记忆用方便以后查询。

function main(){
		var list=new Array(93,1,7,9,8,3,10,33,79,45,32,11,0,88,99,12,4,66,64,31,78,100);
		//list=quickSort(list);		
		document.write(sort(list).valueOf());
	}
	
	function sort(arr){
		return quickSort(arr,0,arr.length-1);
		function quickSort(arr,l,r){			
			if(l<r){			
				var mid=arr[parseInt((l+r)/2)],i=l-1,j=r+1;			
				while(true){
					while(arr[++i]<mid);
					while(arr[--j]>mid);				
					if(i>=j)break;
					var temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}		
				quickSort(arr,l,i-1);
				quickSort(arr,j+1,r);
			}
			return arr;
		}
	}

 

■ 拿起勇气,探索你未知的世界。
Add your comment

2 条回复

  1. #1楼 kalso      2010-11-24 15:27
    aaaaaaaaaaaaaaaaa
     回复 引用 查看   
  2. #2楼 super-d2      2011-10-12 22:08
    看不大懂
     回复 引用 查看