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>