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);
         }
     }