選擇排序與堆排序

選擇排序,需要每次在未排序的數組中找到最小元,然後與有序部分的最大值交換,在一個for循環中,簡單的掃描獲取最小元,複雜度爲O(n²);因此,想辦法優化獲取最小元的部分,用最小堆,於是優化爲堆排序; 在排序過程中,使用最小堆需要新開闢一個數組用於存放臨時拍好的部分數組,排好後再導回原始的數組輸出,浪費了O(n)空間; 改進:使用最大堆,把根節點的最大元素調整到最後一個節點,然後堆的規模減1;
相關文章
相關標籤/搜索