LeetCode912 使用堆排序解決

2021-10-06 17:36:58 字數 898 閱讀 6737

給你乙個整數陣列 nums,請你將該陣列公升序排列。

示例 1:

輸入:nums = [5,2,3,1]

輸出:[1,2,3,5]

示例 2:

輸入:nums = [5,1,1,2,0,0]

輸出:[0,0,1,1,2,5]

public class heapsort ;

sortarray(nums);

for (int i : nums)

}public static int sortarray(int nums)

// 堆化

bulidheap(newnums, n-1);

// 排序,每次都將堆頂元素與堆尾交換,再自上而下堆化

int k = n-1;

while (k > 1)

// 轉化結果

for (int i = 0; i < n - 1; i++)

return nums;

}/**

* 對整個陣列堆化

* @param nums 陣列

* @param n 堆中的資料個數,下標為0的不算

*/public static void bulidheap(int nums, int n)

}/**

* 對單個元素,自上而下的堆化

* @param nums 陣列

* @param n 堆中的資料個數,下標為0的不算

* @param i 元素所在位置

*/public static void heapify(int nums, int n, int i)

}public static void swap(int nums, int i, int j)

}

leetcode 912 排序陣列

給定乙個整數陣列 nums,將該陣列公升序排列。示例 1 輸入 5,2,3,1 輸出 1,2,3,5 示例 2 輸入 5,1,1,2,0,0 輸出 0,0,1,1,2,5 1 a.length 10000 50000 a i 50000實際上python自帶的sort函式是最好的,用了timesor...

leetcode 912 排序陣列

這是乙個排序題,都是老生常談的東西了,之前用的排序演算法都是通過比較大小進行排序,貼一下不用比較大小的計數排序的 計數排序的思想是 對於陣列中乙個需要排序的數字x來說,算出陣列中小於等於它的數字個數便可得出該數在有序陣列中的位置。該演算法只適用於整數陣列,時間複雜度為o n k o n k o n ...

LeetCode 912 排序陣列

排序陣列 給你乙個整數陣列 nums,請你將該陣列公升序排列。class solution for int i 0 i nums.length i 如果沒有資料交換,說明已經完全有序,提前退出迴圈if flag return nums class solution 記錄最小值的索引 int min ...