File tree Expand file tree Collapse file tree 1 file changed +35
-1
lines changed Expand file tree Collapse file tree 1 file changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -71,4 +71,38 @@ function heapSort(arr) {
71
71
}
72
72
return arr;
73
73
}
74
- ```
74
+ ```
75
+ ## 4. Python 代码实现
76
+
77
+ ``` python
78
+ def buildMaxHeap (arr ):
79
+ import math
80
+ for i in range (math.floor(len (arr)/ 2 ),- 1 ,- 1 ):
81
+ heapify(arr,i)
82
+
83
+ def heapify (arr , i ):
84
+ left = 2 * i+ 1
85
+ right = 2 * i+ 2
86
+ largest = i
87
+ if left < arrLen and arr[left] > arr[largest]:
88
+ largest = left
89
+ if right < arrLen and arr[right] > arr[largest]:
90
+ largest = right
91
+
92
+ if largest != i:
93
+ swap(arr, i, largest)
94
+ heapify(arr, largest)
95
+
96
+ def swap (arr , i , j ):
97
+ arr[i], arr[j] = arr[j], arr[i]
98
+
99
+ def heapSort (arr ):
100
+ global arrLen
101
+ arrLen = len (arr)
102
+ buildMaxHeap(arr)
103
+ for i in range (len (arr)- 1 ,0 ,- 1 ):
104
+ swap(arr,0 ,i)
105
+ arrLen -= 1
106
+ heapify(arr, 0 )
107
+ return arr
108
+ ```
You can’t perform that action at this time.
0 commit comments