摘要: 堆排序算法
---------- C++博客 Alex-Lee 2009-10-15
(二叉)堆結構是一種數組對象,它可以被視為一顆完全二叉樹。算法時間復雜度O(nlgn),具有插入排序和合并排序的優點。堆結構滿足堆性質:對除根以外的每個節點i,滿足A[PARENT(i)] >= A[i]。
堆排序算法實現有三個部分完成:
1,保持堆性質函數heap_ify;
2,構建堆函數build_heap;
3,堆排序函數 heap_sort;
另外,在優先級隊列中有extract-max 過程和insert過程,在作業隊列中常用,比如消息隊列。這部分在優先級排序中說明。
閱讀全文
posted @
2009-10-15 21:01 Alex-Lee 閱讀(1676) |
評論 (1) |
編輯 收藏