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

本文介绍了一个简单的C语言程序,该程序通过调整数组中元素的位置来实现将所有偶数移动到数组左侧,所有奇数移动到右侧的目标。程序使用了指针技巧,并通过循环和交换操作实现了这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值