給你乙個整數陣列 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]
1 <= nums.length <= 50000
-50000 <= nums[i] <= 50000
排序的方法有很多種,本文採用快速排序。
class
solution
private
void
quicksort
(int
nums,
int left,
int right)
// 遞迴
int pos =
partition
(nums, left, right)
;quicksort
(nums, left, pos -1)
;quicksort
(nums, pos +
1, right);}
// 排好其中乙個數的位置
private
intpartition
(int
nums,
int left,
int right)
nums[left]
= nums[right]
;while
(left < right && nums[left]
<= pivot)
nums[right]
= nums[left];}
nums[left]
= pivot;
return left;
}}
912 排序陣列
今天的每日一題是排序,這是乙個入門問題。有多種解法,當然最簡單是直接呼叫sort方法進行排序,但是這對於練習並沒有什麼意義 題目鏈結 思路1 快排 每一次劃分pivot左邊小於pivot右邊大於pivot。遞迴劃分左邊,遞迴劃分右邊。思路2 歸併排序,先讓子串行有序,然後合併兩個有序陣列。流程 遞迴...
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 ...