快速排序:
快速排序是对冒泡排序的一种改进,他是将数组的所有的值与一个key值比较(此值一般为第一个或者最后一个)然后将大于key值的数放在key值又边,小于key值的数放在key值左边。然后分别在对key值左右的无序数组进行上述方法进行递归排序最后当数组排序完成结束排序。
下面是我编写的js代码:
function quickSort(arr,left,right)
{
var key=arr[left];
var start=left;
var end=right;
var temp;
while(end>start)
{
for(;;end--){
if(start>=end){
break;
}
if(arr[end]<key){
temp=arr[end];
arr[end]=arr[start];
arr[start]=temp;
break;
}
}//右位
for(;;start++){
if(start>=end){
break;
}
if(arr[start]>key){
temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
break;
}
}//左位
}
if(end==start){
arr[start]=key;
}
if(left>=right)
{
return;
}
quickSort(arr,left,start-1);
quickSort(arr,start+1,right);
}
var arr=new Array(1,3,7,2,5,1,6);
var start = 0;
var end = arr.length;
quickSort(arr,0,arr.length);
document.write(arr);
在编写js代码时首先要理解函数的本意 然后对函数进行编写;递归函数经常会出现没有无限循环的情况下这里需要注意