<!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>
用javascript实现最大堆
最新推荐文章于 2023-06-30 14:46:32 发布