已知陣列a[n]的元素型別為int。設計演算法將其調整為左右兩部分,左邊所有元素為奇數,右邊所有元素為偶數,並要求演算法的時間複雜度為o(n)。
@zyt
#include
/****
****
****
****
****
***交換分割陣列:
頭指標、尾指標定位
當左指標《右指標時
情況1:(奇數-偶數)0-1對
left++;right--;break;
情況2:(偶數-奇數)1-0對
swap;
left++;right--;break;
情況3:(偶數-偶數)1-1對
right--;break;
情況4:(奇數-奇數)0-0對
left++;break;
****
****
****
****
****
****
****
****
**/void swap(int
*x, int
*y)int judgepair(int a, int b)
int iseven(int n)//isodd
void dividearray(int* a, int
length)
}}int main()
; for (int i = 0; i != 10; ++i)
printf("pre: %d\n", array[i]);
printf("-----------\n");
dividearray(array, 10);
for (int i = 0; i != 10; ++i)
printf("cur: %d\n", array[i]);
return
0;}
陣列元素奇偶排序程式中的死迴圈引起的思考
有一陣列 a 8 對該陣列進行排序使得奇數全部在偶數的前面,並且不可以引進分配新的陣列空間。看到這樣的題目,也許會覺得很簡單,因為題目的目的很明確,只要將奇數全部移到偶數的前面即可,而奇數與奇數之間 偶數與偶數之間都不要求順序。最開始我想到了如下 void sort one int a,int le...
演算法總結 陣列相關 陣列中找特定元素相關
本次總結在陣列中查詢特定的元素。碰到的面試題目主要包括 題目的意思很明顯,1001個數字中只有乙個數字出現了兩次,其餘的都是一次。並且不缺少任何數字。那麼找到這個數字,我們可以有很多思路 思路a 求和,最簡單也最容易想出來的方法 1 2 3 4 1000的和與陣列的和求差,差的結果就是這個數字,缺點...
搞定演算法 陣列的奇偶位置問題
一起交流秋招面試經驗,可獲得博主的秋招簡歷和複習筆記。題目 給定乙個整型陣列,請在原地調整這個陣列,保證要麼偶數字置上都是偶數,或者奇數字置上都是奇數。要求 時間複雜度 o n 額外空間複雜度 o 1 下面的 中,將最後乙個元素作為發貨點,根據自己值的奇偶性和當前陣列 odd 和 even 指標指向...