zoukankan      html  css  js  c++  java
  • 堆排序

    def find_max(arr, size):
        # 从后往前遍历
        # 父节点为i 子结点为2i+1 和 2i+2
        for i in range(size-1, 0, -1):
            # 记录父节点
            parent = i//2
            # 记录子节点
            child = i
            # 比较子节点大小
            if i < size-1 and arr[i] < arr[i+1]:
                child += 1
            if arr[child] > arr[parent]:
                # 把子节点跟父节点交换
                arr[child], arr[parent] = arr[parent], arr[child]
    
    
    def heap_sort(arr, size):
        for i in range(size, 0, -1):
            # 找到最大值
            find_max(arr, i)
            print(arr, '---')
            # 把最大值往后放
            arr[0], arr[i-1] = arr[i-1], arr[0]
            print(arr, '===')
    
    if __name__ == "__main__":
        l = [3, 1, 4, 9, 6, 10, 5, 8, 2, 7]
        heap_sort(l, 10)
        print(l)
        
    # [10, 3, 9, 1, 7, 4, 5, 8, 2, 6] ---
    # [6, 3, 9, 1, 7, 4, 5, 8, 2, 10] ===
    # [9, 6, 8, 3, 7, 4, 5, 1, 2, 10] ---
    # [2, 6, 8, 3, 7, 4, 5, 1, 9, 10] ===
    # [8, 2, 7, 5, 6, 4, 3, 1, 9, 10] ---
    # [1, 2, 7, 5, 6, 4, 3, 8, 9, 10] ===
    # [7, 1, 6, 5, 2, 4, 3, 8, 9, 10] ---
    # [3, 1, 6, 5, 2, 4, 7, 8, 9, 10] ===
    # [6, 3, 5, 1, 2, 4, 7, 8, 9, 10] ---
    # [4, 3, 5, 1, 2, 6, 7, 8, 9, 10] ===
    # [5, 4, 3, 1, 2, 6, 7, 8, 9, 10] ---
    # [2, 4, 3, 1, 5, 6, 7, 8, 9, 10] ===
    # [4, 2, 3, 1, 5, 6, 7, 8, 9, 10] ---
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ===
    # [3, 1, 2, 4, 5, 6, 7, 8, 9, 10] ---
    # [2, 1, 3, 4, 5, 6, 7, 8, 9, 10] ===
    # [2, 1, 3, 4, 5, 6, 7, 8, 9, 10] ---
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ===
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ---
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ===
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    此时此刻,非我莫属
  • 相关阅读:
    【k8s】livenessProbe-exec
    【Kubernetes】结束前执行-HTTPGET
    【Kubernetes】启动后执行-HTTPGET
    【Kubernetes】结束前执行-exec
    【Kubernetes】启动后执行-exec
    【Kubernetes】镜像拉取策略-Never
    JavaWeb 之 备用
    JavaWeb 之 备用
    JavaWeb 之 Session
    JavaWeb 之 Cookie
  • 原文地址:https://www.cnblogs.com/taozhengquan/p/15333054.html
Copyright © 2011-2022 走看看