3、golang之堆排序

1、堆排序時間複雜度 堆排序的時間複雜度是 O(N*lgN)。 假設被排序的數列中有N個數。遍歷一趟的時間複雜度是O(N),需要遍歷多少次呢? 堆排序是採用的二叉堆進行排序的,二叉堆就是一棵二叉樹,它需要遍歷的次數就是二叉樹的深度,而根據完全二叉樹的定義, 它的深度至少是lg(N+1)。最多是多少呢?由於二叉堆是完全二叉樹,因此, 它的深度最多也不會超過lg(2N)。因此,遍歷一趟的時間複雜度是O
相關文章
相關標籤/搜索