排序陣列
給你乙個整數陣列 nums,請你將該陣列公升序排列。
class
solution
for(
int i =
0; i < nums.length; i++)}
// 如果沒有資料交換,說明已經完全有序,提前退出迴圈if(
!flag)
}return nums;
}}
class
solution
//記錄最小值的索引
int min =0;
//遍歷 n-1 輪,最後乙個數不用遍歷比較
for(
int i =
0; i < nums.length -
1; i++)}
if(min != i)
}return nums;
}}
class
solution
for(
int i =
1; i < nums.length; i++
)else
}// 插入值
// for迴圈時,j多經歷了一次j--,所以要+1
// 比如第一次迴圈時,j到這裡,值為-1
nums[j +1]
= tmp;
}return nums;
}}
class
solution
mergersort
(nums,
0, nums.length -1)
;return nums;
}private
void
mergersort
(int
nums,
int start,
int end)
// 利用分治思想,將要排序的陣列分解成兩個小陣列,分別排序
int mid =
(start + end)/2
;mergersort
(nums, start, mid)
;mergersort
(nums, mid +
1, end)
;// 合併排好序的小陣列
merger
(nums, start, end);}
private
void
merger
(int
nums,
int start,
int end)
else
}// 判斷哪個陣列還有剩餘資料,將之放到臨時陣列中
int tmpstart = i;
int tmpend = mid;
if(j <= end)
while
(tmpstart <= tmpend)
// 將臨時陣列中的內容放回nums陣列中
if(end - start +
1>=0)
}}
class
solution
quicksort
(nums,
0, nums.length -1)
;return nums;
}private
void
quicksort
(int
nums,
int start,
int end)
// 獲取分割槽點
int q =
partition
(nums,
0, end)
;quicksort
(nums, start, q -1)
;quicksort
(nums, q +
1, end);}
private
intpartition
(int
nums,
int start,
int end)
else}}
if(i < end)
return i;
}}
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 排序陣列
difficulty 中等 給你乙個整數陣列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 ...