【劍指offer】調整陣列順序
轉載請註明出處:http://blog.csdn.net/ns_code/article/details/25829395
劍指offer上的第14題,九度OJ為了確保輸出的結果的唯一性,在輸出上做了修改,因此採用的方法自然與書本上不同,這裡沒有限制,思來想去還是用最簡單的方法來做了,非常簡單的方法,直接上程式碼。
- 題目描述:
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
- 輸入:
每個輸入檔案包含一組測試案例。
對於每個測試案例,第一行輸入一個n,代表該陣列中數字的個數。
接下來的一行輸入n個整數。代表陣列中的n個數。
- 輸出:
對應每個測試案例,
輸入一行n個數字,代表調整後的陣列。注意,數字和數字之間用一個空格隔開,最後一個數字後面沒有空格。
- 樣例輸入:
5 1 2 3 4 5
- 樣例輸出:
1 3 5 2 4
#include<stdio.h>
#include<stdlib.h>
void MoveOddEven(int *A,int n)
{
if(A==NULL || n<2)
return;
int *B = (int *)malloc(n*sizeof(int));
if(B == NULL)
exit(EXIT_FAILURE);
int i;
int j = 0;
for(i=0;i<n;i++)
{
//奇數
if((A[i]&1) != 0)
B[j++] = A[i];
}
for(i=0;i<n;i++)
{
//偶數
if((A[i]&1) == 0)
B[j++] = A[i];
}
for(i=0;i<n;i++)
{
A[i] = B[i];
}
free(B);
B = NULL;
}
int main()
{
int i,n;
scanf("%d",&n);
int *A = (int *)malloc(n*sizeof(int));
if(A == NULL)
exit(EXIT_FAILURE);
for(i=0;i<n;i++)
scanf("%d",A+i);
MoveOddEven(A,n);
for(i=0;i<n;i++)
{
//注意輸出格式
if(i == n-1)
printf("%d\n",A[i]);
else
printf("%d ",A[i]);
}
free(A);
A = NULL;
return 0;
}
/**************************************************************
Problem: 1516
User: mmc_maodun
Language: C
Result: Accepted
Time:80 ms
Memory:1692 kb
****************************************************************/
相關文章
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- 劍指 Offer 21. 調整陣列順序使奇數位於偶數前面陣列
- 劍指offer面試題14 調整陣列順序使奇數位於偶數前面面試題陣列
- 【劍指Offer學習】【面試題14 :調整陣列順序使奇數位於偶數前面】面試題陣列
- 劍指offer之順序列印陣列陣列
- 劍指 offer(1) -- 陣列篇陣列
- 調整陣列元素順序演算法陣列演算法
- 【劍指offer】順時針列印矩陣矩陣
- 【劍指offer】陣列中的逆序對陣列
- 劍指offer-19:順時針列印矩陣矩陣
- 劍指Offer-37-陣列中逆序對陣列
- 《劍指offer》:[52]構建乘積陣列陣列
- 【劍指offer】把陣列排成最小的數陣列
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- 【劍指offer】字串轉整數字串
- 劍指offer:旋轉陣列的最小數字陣列
- 【劍指offer】二維陣列中的查詢陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 【劍指offer】連續子陣列的最大和陣列
- 【劍指offer】旋轉陣列的最小值陣列
- 劍指 Offer 29-順時針列印矩陣c++矩陣C++
- 力扣 - 劍指 Offer 29. 順時針列印矩陣力扣矩陣
- 劍指Offer--陣列中重複的數字陣列
- 劍指Offer-34-把陣列排成最小的數陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- 劍指offer——陣列中的逆序對C++(75%)陣列C++
- 【劍指offer】【1】二維陣列中的查詢陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 《劍指offer》:[51]陣列中的重複數字陣列
- 【劍指offer】二分查詢二維陣列陣列
- 【劍指offer】 第三題 二維陣列查詢陣列
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- LeetCode題解(Offer21):調整陣列順序使奇數位於偶數前面(Python)LeetCode陣列Python
- JavaScript調整option順序JavaScript
- AIX磁碟順序調整AI
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 二維陣列中的查詢——牛客劍指offer陣列
- 劍指 Offer 42.連續子陣列的最大和陣列