劍指offer 調整陣列順序

2021-09-13 11:43:08 字數 768 閱讀 4158

時間限制:1秒 空間限制:32768k

本題知識點: 陣列

題目描述

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

首先想到的是利用兩個輔助陣列,乙個儲存奇數,乙個儲存偶數,這樣的解法空間複雜度為o(n),時間複雜度為o(n)。**如下:

class solution 

array.

clear()

;for

(int i=

0;isize()

;++i)

for(

int i=

0;isize()

;++i)}}

;

上面的方法使用了兩個輔助陣列,實際上使用乙個陣列即可。改進後的**如下:

class solution 

for(

int i=

0;isize()

;++i)

array=new_array;}}

;

不使用額外的輔助空間,採用類似於插入排序的方法,時間複雜度為o(n2)

class solution 

array[j+1]

=temp;}}

}};

劍指offer(調整陣列順序)

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。1 暴力解法 從前到位掃瞄陣列,如果出現前面是偶數後面是奇數的情況,則交換。其中使用氣泡排序的思想。從後面朝前比較,使用外迴圈控制趟...

劍指offer(十三) 調整陣列順序

題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。題解 思路簡單的解法就是,建兩個臨時陣列,乙個奇數陣列,乙個偶數陣列,最後再組合起來即可,時間複雜度為o n 一解 pub...

劍指offer 調整陣列內奇偶數順序

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。時間換空間的 思想可以參考插入排序。時間複雜度為o n 2 空間複雜度為o 1 class solution array j 1...