用javascript实现最大堆

来源:互联网 发布:mac视频后期制作软件 编辑:程序博客网 时间:2024/06/04 19:54
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><script>    var heapArray = [1,2,3,4,5,6];//这里构建的是最大堆    function buildMaxHeap(heapArray,allIndex) {        var lastIndex = Math.floor(heapArray.length/2)-1+allIndex;        for (var index = lastIndex;index>=allIndex;index--){            var lastLeftIndex = index*2+1;            if (lastLeftIndex>=heapArray.length){                continue;            }            var lastLeftData = heapArray[lastLeftIndex];            if (heapArray[index]<= lastLeftData){                heapArray[lastLeftIndex] =  heapArray[index];                heapArray[index]= lastLeftData;                init(heapArray,lastLeftIndex);            }            var rightLastIndex = lastLeftIndex+1;            if (rightLastIndex>=heapArray.length){                continue;            }            if (heapArray[rightLastIndex]>=  heapArray[index]){                var temp = heapArray[index];                heapArray[index]= heapArray[rightLastIndex];                heapArray[rightLastIndex] = temp;                init(heapArray,rightLastIndex);            }        }    }    buildMaxHeap(heapArray,0);    console.log('wori yo test',heapArray);</script></body></html>
原创粉丝点击