leetcode解題之排序陣列

2021-10-04 15:57:07 字數 1241 閱讀 2245

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

int high)

}private

intgetindex

(int

nums,

int low,

int high)

//隊尾元素小於基準,將隊尾元素賦值給low

nums[low]

= nums[high]

;//隊首元素小於等於基準,隊首向後移動

while

(low<=tem)

//當隊首元素大於基準,將其賦值給high

nums[high]

= nums[low];}

nums[low]

= tem;

return low;

}//選擇排序

private

void

selectsort

(int

nums)

}//將最小的元素和i位置元素互換

int tem = nums[i]

; nums[i]

= nums[minvalueindex]

; nums[minvalueindex]

=tem;}}

//冒泡

private

void

bubblesort

(int

nums)}}

}}

leetcode解題之搜尋旋轉排序陣列

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...

LeetCode之搜尋旋轉排序陣列

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...

leetcode之搜尋旋轉排序陣列

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...