算法复习(持续更新)
1、汉诺塔算法
function hanoi(n,A,B,C){
if(n==1){
document.write(A+"->"+C);
document.write("<br>");
}
else{
hanoi(n-1,A,C,B);
document.write(A+"->"+C);
document.write("<br>");
hanoi(n-1,B,A,C);}
if(n==1){
document.write(A+"->"+C);
document.write("<br>");
}
else{
hanoi(n-1,A,C,B);
document.write(A+"->"+C);
document.write("<br>");
hanoi(n-1,B,A,C);}
2、快速排序
function partition(arr,low,high){
p=arr[low];
while(low<high){
while(low<high&&arr[high]>=p) high--;
arr[low]=arr[high];
while(low<high&&arr[low]<=p) low++;
arr[high]=arr[low];
}
arr[low]=p;
return low;
}
function qsort(arr,low,high){
if(low<high){
mid=partition(arr,low,high);
qsort(arr,low,mid-1);
qsort(arr,mid+1,high);
}
p=arr[low];
while(low<high){
while(low<high&&arr[high]>=p) high--;
arr[low]=arr[high];
while(low<high&&arr[low]<=p) low++;
arr[high]=arr[low];
}
arr[low]=p;
return low;
}
function qsort(arr,low,high){
if(low<high){
mid=partition(arr,low,high);
qsort(arr,low,mid-1);
qsort(arr,mid+1,high);
}
}
posted on 2012-11-04 18:39 zhangyh2010 阅读(105) 评论(0) 收藏 举报
浙公网安备 33010602011771号