【 題目:】
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。
【i/o描述】
void
test1()
;test
("test1"
, numbers,
sizeof
(numbers)
/sizeof
(int))
;}void
test2()
;test
("test2"
, numbers,
sizeof
(numbers)
/sizeof
(int))
;}void
test3()
;test
("test3"
, numbers,
sizeof
(numbers)
/sizeof
(int))
;}void
test4()
;test
("test4"
, numbers,
sizeof
(numbers)
/sizeof
(int))
;}void
test5()
;test
("test5"
, numbers,
sizeof
(numbers)
/sizeof
(int))
;}void
test6()
【**】
#include
//#include
#include
#include
//#include
using
namespace std;
void
reorder
(int
* data,
int length,
bool
(*func)
(int))
int* lft = data;
int* rt = data + length -1;
while
(lftwhile
(lftfunc
(*rt))if
(lftbool
iseven
(int n)
void
reorderoddeven
(int
*data,
int length)
intmain()
;for
(int a : numbers)
cout << endl;
reorderoddeven
( numbers,
sizeof
(numbers)
/sizeof
(int))
;for
(int a:numbers)
cout << endl;
return0;
}/****
***/
面試題21 調整陣列順序使奇數字於偶數前面
題目 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案之一。1 nums.length 50000 1 nums i 10000 解題思路...
面試題21 調整陣列順序使奇數字於偶數前面
題目 解題思路 三種方法,暴力解法,首尾雙指標,快慢指標法。第一種暴力解法,通過引入乙個新的陣列用於記錄,從頭開始遍歷整個陣列,奇數從新陣列的開始為存入,偶數從最後一位開始存入,此方法時間和空間複雜度都是o n 演算法效率不是最優。第二種首尾雙指標法,演算法過程 第三種快慢指標法,顧名思義就是通過兩...
面試題21 調整陣列順序使奇數字於偶數前面
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案之一。這應該是最直觀的思路了,即建立兩個列表,之後遍歷nums,所有奇數放入乙個列表,所有...