diff --git a/7.heapSort.md b/7.heapSort.md index 394d929..8a19a63 100644 --- a/7.heapSort.md +++ b/7.heapSort.md @@ -31,7 +31,8 @@ var len; // 因为声明的多个函数都需要数据长度,所以把len function buildMaxHeap(arr) { // 建立大顶堆 len = arr.length; - for (var i = Math.floor(len/2); i >= 0; i--) { + //从最后一个非叶子结点开始 + for (var i = Math.floor(len/2) -1; i >= 0; i--) { heapify(arr, i); } } @@ -77,7 +78,7 @@ function heapSort(arr) { ```python def buildMaxHeap(arr): import math - for i in range(math.floor(len(arr)/2),-1,-1): + for i in range(math.floor(len(arr)/2-1),-1,-1): heapify(arr,i) def heapify(arr, i): @@ -122,7 +123,7 @@ func heapSort(arr []int) []int { } func buildMaxHeap(arr []int, arrLen int) { - for i := arrLen / 2; i >= 0; i-- { + for i := arrLen / 2 - 1; i >= 0; i-- { heapify(arr, i, arrLen) } } @@ -171,7 +172,7 @@ public class HeapSort implements IArraySort { } private void buildMaxHeap(int[] arr, int len) { - for (int i = (int) Math.floor(len / 2); i >= 0; i--) { + for (int i = len / 2 - 1; i >= 0; i--) { heapify(arr, i, len); } } @@ -210,7 +211,7 @@ public class HeapSort implements IArraySort { function buildMaxHeap(&$arr) { global $len; - for ($i = floor($len/2); $i >= 0; $i--) { + for ($i = floor($len/2) - 1; $i >= 0; $i--) { heapify($arr, $i); } } diff --git a/src/java/main/HeapSort.java b/src/java/main/HeapSort.java index 6e9dcfe..2cc7e04 100644 --- a/src/java/main/HeapSort.java +++ b/src/java/main/HeapSort.java @@ -23,7 +23,8 @@ public int[] sort(int[] sourceArray) throws Exception { } private void buildMaxHeap(int[] arr, int len) { - for (int i = (int) Math.floor(len / 2); i >= 0; i--) { + //从最后一个非叶子结点开始 + for (int i = len / 2 - 1; i >= 0; i--) { heapify(arr, i, len); } }