且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

剑指Offer之调整数组使奇数位于偶数前面(题14)

更新时间:2022-10-04 15:18:23

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/****************************************                                                                                                 
  2     > File Name:test.c
  3     > Author:xiaoxiaohui
  4     > mail:1924224891@qq.com
  5     > Created Time:2016年05月26日 星期四 19时15分12秒
  6 ****************************************/
  
  8 #include<stdio.h>
  9 #include<assert.h>
 10 
 11 void Adjust(int *array, int size)
 12 {
 13     assert(array);
 14     assert(size > 0);
 15 
 16     int* left = arrar;
 17     int* right = arrar[size - 1];
 18 
 19     while(right > left)
 20     {
 21         if( ((*left) & 1) == 0)    //左边为偶数
 22         {
 23             if( ((*right) & 1) == 1)  //右边为奇数
 24             {
 25                 swap(*left, *right);
 26                 left++;
 27                 right--;
 28             }
 29             else
 30             {
 31                 right--;
 32             }
 33         }
 34         else      //如果左边不为偶数,则left++
 35         {
 36             left++;
 37         }
 38     }
 39 }









本文转自 ye小灰灰  51CTO博客,原文链接:http://blog.51cto.com/10704527/1783645,如需转载请自行联系原作者