88 簡單 合併兩個有序陣列

2021-10-08 16:41:36 字數 798 閱讀 4395

方法一:從後往前排,從陣列的尾端往前比較,放置元素,如果nums2中有數剩餘沒排,則將其copy到nums1中 o(n)

void

merge

(int

* nums1,

int nums1size,

int m,

int* nums2,

int nums2size,

int n)

else

temp1--;}

if(0== m)

}

方法二:將2個陣列拼湊起來,再排序,感覺適用性高,各種題型都合適,但是效率低o(n2)

void

bubble_sort

(int

* _buff,

int _len)

_buff[j+1]

^= _buff[j]

; _buff[j]

^= _buff[j+1]

; _buff[j+1]

^= _buff[j];}

}}void

merge

(int

* nums1,

int nums1size,

int m,

int* nums2,

int nums2size,

int n)

88 合併兩個有序陣列(簡單)

解題思路 使用 i 遍歷nums1,由於兩個陣列都為有序陣列所以可以直接比較第 i 個元素和nums2中的元素,若第i個元素比nums2中第乙個元素大的話,則將nums2中的的第乙個元素插入到第i個位置,將nums2 0 刪除 nums2陣列中始終儲存著沒有插入的元素 若第i個位置小於nums2中的...

88 合併兩個有序陣列

略。知道是在nums1上變動。如果從nums1的頭部開始放,就會出現nums1緊接著的第乙個元素還沒有nums2從頭數第二個元素小的情形,這樣就沒有辦法比較了。而從nums1的最後乙個元素開始放,能夠保證nums1和nums2的最後乙個元素一定比彼此的倒數第二個元素大。所以選擇從nums1的最後乙個...

88 合併兩個有序陣列

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 示例 輸入 nums1 1,2,3,0,0,0 m 3 nums2 2,5,6 n 3輸出 1,2,2,3,5,6 思路 建乙個新的陣列nums,長度為m n 用乙個fo...