Lion X

** LeetCode算法实现** <Excerpt in index | 首页摘要>
C语言实现LeetCode——905算法

<The rest of contents | 余下全文>

LeetCode_905_Sort Array By Parity

实现步骤

1.双向遍历数组
2.如果头指针指向的数字时奇数,尾指针指向的数字是偶数则交换两数位置
3.如果头指针指向的数字是偶数,尾指针指向的数字是奇数或者头指针和尾指针指向的数字都是奇数则不交换数字,尾指针向前移动一位
4.如果不符合2、3则头指针向后移动一位
5.返回修改后的数组

代码实现(C语言)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int* sortArrayByParity(int* A, int ASize, int* resultSize){
int *head = A;
int *foot = A + (ASize - 1);
int *temp = (int *)malloc(sizeof(int));
while(head > foot){
if(*head % 2 == 1 && *foot % 2 == 0){
*temp = *head;
*head = *foot;
*foot = *temp;
head++;
foot--;
}
else if((*head % 2 == 0 && *head % 2 == 1) || (*head % 2 == 1 && *foot % 2 == 1))
foot--;
else
head++;
}
*resultSize = ASize;
return A;
}

 Comments