调整数组中所有奇数位于偶数之前
来源:互联网 发布:显示器屏幕测试软件 编辑:程序博客网 时间:2024/06/05 02:29
题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中
所有奇数全部位于前半数组,所有偶数全部位于后半数组。
题目分析:
一个整型数组中既有奇数又有偶数,欲使所有奇数全部位于前半数组,所有偶数全部位于后半数组,
那么我们不妨从前边查找偶数即arr[left]%2==0,如果不是偶数它将继续向后查找left+1,直到找到偶数,同时从后边
查找奇数即arr[left]%2==1,如果不是奇数它将继续向前查找right-1,将前边找到的奇数和后边找到偶数交换,的当两
个数组相遇时前边的就全为奇数,后边的就全为偶数。
代码实现如下:
<span style="font-size:14px;">#include<stdio.h>void odd_before(int arr[],int sz){int left = 0;int right = sz-1;int tmp = 0;while(left<right){while((arr[left]%2 == 0)&&(arr[right]%2 == 1))//前边为偶数后边为奇数时交换这两个数 { tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; }while(arr[left]%2 == 1)//当前边为奇数left+1,向后查找{left++;}while(arr[right]%2 == 0)//当后边不为奇数时right-1,向前查找{right--;}}}int main(){int arr[] = {1,2,4,3,6,5,0};int sz = sizeof(arr)/sizeof(arr[0]);int i = 0;odd_before(arr,sz);for(i = 0;i<sz;i++){printf("%d",arr[i]);}printf("\n");system("pause");return 0;}</span>运行结果:
0 0
- 调整数组中所有奇数位于偶数之前
- (12)调整数组,使奇数位于偶数之前;
- 【笔试】32、调整数组顺序使奇数位于偶数之前
- 调整数组顺序使奇数位于偶数之前
- 调整数组顺序使奇数位于偶数之前
- 调整数组顺序使奇数位于偶数之前
- 调整数组顺序使奇数位于所有偶数前面
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于偶数前面
- 调整数组使奇数位于偶数前面
- 调整数组使奇数位于偶数前面
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
- 【数据结构】输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
- 重排数组元素使得所有的奇数位于所有偶数之前
- 剑指Offer-题14:调整数组顺序使奇数位于偶数之前
- 剑指Offer-14-调整数组顺序使奇数位于偶数之前
- 【剑指 offer】(十四)—— 调整数组顺序使奇数位于偶数之前
- 调整数组使得奇数元素位于偶数元素之前(相对位置不变)
- C++ Primer 学习笔记_92_用来大型程序的工具 -命名空间[续1]
- 一步一步上手IntelliJ IDEA - JFinal最简增删改查系统(之二)
- 3. web前端开发分享-css,js提高篇
- python统计字符串里每个字符的次数
- C++ Primer 学习笔记_93_用以大型程序的工具 -命名空间[续2]
- 调整数组中所有奇数位于偶数之前
- 读《深度探索C++对象模型》有感
- D - Magic Powder - 1 codeforces 670d1
- android开发中即时聊天软件中时间的获得
- C++ Primer 学习笔记_94_用来大型程序的工具 -命名空间[续3]
- Struts2中Action接收参数的方法
- linux下解压命令大全
- java远程调用
- C++ Primer 学习笔记_95_用来大型程序的工具 -多重继承与虚继承