LeetCode 912 排序陣列

2021-10-07 01:26:21 字數 2089 閱讀 9725

排序陣列

給你乙個整數陣列 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 ...