Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python cho Sắp xếp đống

Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu lệnh vấn đề được đưa ra bên dưới.

Tuyên bố sự cố - Chúng ta được cung cấp một mảng, chúng ta cần sắp xếp nó bằng cách sử dụng khái niệm heapsort.

Ở đây chúng tôi đặt phần tử tối đa ở cuối. Điều này được lặp lại cho đến khi mảng được sắp xếp.

Bây giờ chúng ta hãy quan sát giải pháp trong việc triển khai bên dưới−

Ví dụ

# heapify
def heapify(arr, n, i):
   largest = i # largest value
   l = 2 * i + 1 # left
   r = 2 * i + 2 # right
   # if left child exists
   if l < n and arr[i] < arr[l]:
      largest = l
   # if right child exits
   if r < n and arr[largest] < arr[r]:
      largest = r
   # root
   if largest != i:
      arr[i],arr[largest] = arr[largest],arr[i] # swap
      # root.
      heapify(arr, n, largest)
# sort
def heapSort(arr):
   n = len(arr)
   # maxheap
   for i in range(n, -1, -1):
      heapify(arr, n, i)
   # element extraction
   for i in range(n-1, 0, -1):
      arr[i], arr[0] = arr[0], arr[i] # swap
      heapify(arr, i, 0)
# main
arr = [2,5,3,8,6,5,4,7]
heapSort(arr)
n = len(arr)
print ("Sorted array is")
for i in range(n):
   print (arr[i],end=" ")

Đầu ra

Sorted array is
2 3 4 5 5 6 7 8

Chương trình Python cho Sắp xếp đống

Tất cả các biến được khai báo trong phạm vi cục bộ và các tham chiếu của chúng được hiển thị trong hình trên.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về cách chúng ta có thể tạo một Chương trình Python để Sắp xếp đống