Posts 堆排序算法实现
Post
Cancel

堆排序算法实现

知识点:堆排序

代码链接

之前一直没有手写过堆排序,今天完整了实现了堆排序类。并提供了pop(),push(),sort_all()三个功能

跳过堆排序的概念,考虑类需要实现的方法,如下

​ 1)堆的初始化

​ 2)弹出堆顶元素

​ 3)向堆中添加新元素

​ 4)将整个堆排序返回

对于这些功能,需要进行模块的进一步设计。所有功能都离不开一个基本的操作,即节点元素的位置交换,避免冗余,单独实现。1,3都需要对堆进行重整。因此独立实现一个整理堆的函数。由此函数模块划分如下,具体代码点击文章开头链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class HeapSort:
    # 将传入数组整理使得其符合堆
    def __init__(self, heap_list=None) -> None:


    # 需要整体进行处理的情况
    def reform_heap(self, ):

    # 弹出一个元素后的处理
    def exchange_element(self, index: int, length: int):

    # 添加一个元素
    def push(self, new_num: int):

    # 弹出一个元素
    def pop(self):

    # 完整排序
    def sort_all(self):
This post is licensed under CC BY 4.0 by the author.

用python重新整理刷题记录

2022年下半年加2023上半年刷题整理