Khác biệt giữa bản sửa đổi của “Sắp xếp vun đống”
Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi |
Không có tóm lược sửa đổi |
||
Dòng 10:
==Vun đống==
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
var arr = new Array(2,3,5,6,4,1,7);
var count = arr.length;
var start = Math.floor(count/2);
show(arr);
setTimeout(function(){heap_1(arr, start, count);}, 3000);
setTimeout(function(){heap_1(arr, start, count);}, 6000);
setTimeout(function(){heap_1(arr, start, count);}, 9000);
setTimeout(function(){change(arr, 6);}, 12000);
setTimeout(function(){input(arr, 7);}, 12000);
setTimeout(function(){heap_next(arr, 6);}, 15000);
setTimeout(function(){change(arr, 5);}, 18000);
setTimeout(function(){input(arr, 6);}, 18000);
setTimeout(function(){heap_next(arr, 5);}, 21000);
setTimeout(function(){change(arr, 4);}, 24000);
setTimeout(function(){input(arr, 5);}, 24000);
setTimeout(function(){change(arr, 3);}, 27000);
setTimeout(function(){input(arr, 4);}, 27000);
setTimeout(function(){change(arr, 2);}, 30000);
setTimeout(function(){input(arr, 3);}, 30000);
setTimeout(function(){change(arr, 1);}, 33000);
setTimeout(function(){input(arr, 2);}, 33000);
setTimeout(function(){input(arr, 1);}, 36000);
})
function heap_1(arr, start, count){
var n = start;
exit_for:
for(n;n>=1;n--){
var i = n;
var j = i*2;
while(j <= count){
if((j+1<=count)&&(arr[j-1]<arr[j])){
j = j + 1;
}
if(arr[i-1]<arr[j-1]){
var hoan = swap(arr[i-1],arr[j-1]);
arr[i-1] = hoan[0];
arr[j-1] = hoan[1];
i = j;
j = j*2;
//alert(arr);
show(arr);
break exit_for;
}else{
break;
}
}
}
return arr;
}
function heap_next(arr, next){
exit_for:
for(var n=1;n>=1;n--){
var i = n;
var j = i*2;
while(j<=next){
if((j+1<=next)&&(arr[j-1]<arr[j])){
j = j + 1;
}
if(arr[i-1]<arr[j-1]){
var hoan = swap(arr[i-1],arr[j-1]);
arr[i-1] = hoan[0];
arr[j-1] = hoan[1];
i = j;
j = j*2;
//alert(arr);
show(arr);
break exit_for;
}else{
break;
}
}
}
}
function swap(x, y){
var tmp = [];
tmp[1] = x;
tmp[0] = y;
return tmp;
}
function show(arr){
$("div#b1").html(arr[0]);
$("div#b2").html(arr[1]);
$("div#b3").html(arr[2]);
$("div#b4").html(arr[3]);
$("div#b5").html(arr[4]);
$("div#b6").html(arr[5]);
$("div#b7").html(arr[6]);
}
function change(arr, pos){
var tmp = arr[0];
arr[0] = arr[pos];
arr[pos] = tmp;
show(arr);
return arr;
}
function input(arr, x){
$("div#bx"+x).html(arr[x-1]);
}
</script>
|