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) {
7171 }
7272 return arr;
7373}
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