小编Akh*_*S R的帖子

堆排序的目的是什么?

当我们构建堆时,数组中的元素会按照特定顺序(升序或降序)排列,具体取决于它是最大堆还是最小堆。那么当构建堆本身以排序顺序排列元素且时间复杂度较小时,堆排序有什么用呢?

    void build_heap (int Arr[ ])
        {
           for(int i = N/2-1 ; i >= 0; i-- )
           {
              down_heapify (Arr, i, N);
           }
        }
Run Code Online (Sandbox Code Playgroud)
    void heap_sort(int Arr[], int N)
    {
        build_heap(Arr);
        
        for(int i = N-1; i >= 1; i--)
        {
            swap(Arr[i], Arr[0]);
            down_heapify(Arr, 0, i+1);
        }
    }
Run Code Online (Sandbox Code Playgroud)

algorithm heap time-complexity heapsort data-structures

2
推荐指数
1
解决办法
539
查看次数