写个堆排序吧~

    技术2025-08-10  9

    def tune_heap(arr, heapsize, root): left = 2 * root + 1 right = left + 1 larger = root if left < heapsize and arr[larger] < arr[left]: larger = left if right < heapsize and arr[larger] < arr[right]: larger = right arr[root], arr[larger] = arr[larger], arr[root] if larger != root: tune_heap(arr, heapsize, larger) def build_max_heap(arr): for i in range((len(arr) - 2) // 2, -1, -1): tune_heap(arr, len(arr), i) def heap_sort(arr): if len(arr) <= 1: return arr build_max_heap(arr) arr[0], arr[-1] = arr[-1], arr[0] for i in range(len(arr) - 2): tune_heap(arr, len(arr) - 1 - i, 0) arr[0], arr[len(arr) - 2 - i] = arr[len(arr) - 2 - i], arr[0] return arr # 测试通过 arr = [2, 1, 3, 4, 5, 10, 3, 2, 9] for i in range(len(arr) + 1): sorted_arr = heap_sort(arr[:i]) print(sorted_arr)

    利用堆

    Processed: 0.008, SQL: 9