調整陣列順序使得奇數字於偶數前面

2021-09-08 17:54:55 字數 1010 閱讀 2122

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得全部的奇數字於陣列的前半部分。全部的偶數字於位於陣列的後半部分。

**:

/*

調整陣列順序使得奇數字於偶數前面

by rowandjj

2014/8/1

*/#include#includeusing namespace std;

//高效解法,但會調整後的陣列元素相對順序會發生改變

void func(int *parr,int len)

int low = 0,high = len-1;

while(low < high)

while(low < high && (parr[high] & 0x1) == 0)//high指標前移直到遇到奇數

if(low < high)//假設low指標在high指標前面。那就將兩個指標所指元素互換

}}//使用輔助陣列

void func2(int *parr,int len)

int *temp = (int*)malloc(sizeof(int)*len);

if(!temp)

int i,j = 0;

for(i = 0 ; i< len; i++)//先將奇數拷貝到輔助陣列前面 }

for(i = 0; i < len; i++)//再將偶數拷貝到輔助陣列後面 }

for(i = 0; i < len; i++)//覆蓋原陣列

free(temp);

}int main()

int *parr = (int*)malloc(sizeof(int)*n);

if(!parr)

for(int i = 0; i < n; i++)

func2(parr,n);

for(int j = 0; j < n; j++)

else

}free(parr);

return 0;

}

調整陣列順序使得奇數字於偶數前面

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。思路 使用兩個指標,前邊的指標尋找偶數,後邊的指標尋找奇數 若兩個指標都找到了目標,就交換兩個值,進行交換的時候,需要移動元素,...

調整陣列順序使奇數字於偶數前 python

解題思路 此題有兩個解題思路,我先寫出第乙個,後續補充 1.利用python的特點,建立兩個陣列,乙個存放奇數,乙個存放偶數,最後將兩個陣列合併即可。這題麻煩的一點是要保持順序。輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並...

調整陣列順序使奇數字於偶數前 python

思路1 從頭遍歷找到偶數從陣列中刪除並移動到陣列末尾 arr 2 3,4 5,8 7,1 for x in range 0 len arr if arr x 2 0 s arr x arr.remove arr x print arr 思路2 兩個指標,第乙個初始化指向陣列的第乙個數字,只向後移動 ...