数据结构——算法之(026)( 调整数组顺序使奇数位于偶数前面)
2014-06-04 16:00
459 查看
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】
题目:
输入一个整数数组,实现一个函数调整数组的元素顺序,使得奇数位于偶数的前半部分,偶数位于数组的后半部分。时间复杂度O(n)
题目分析:
类似题目:输入一个字符串,实现一个函数,使得大写字符在前半部分,小写字母在后半部分。
(1)没有要求调整后,位置不可以变化
(2)时间复杂度智能遍历一次
算法实现:
题目:
输入一个整数数组,实现一个函数调整数组的元素顺序,使得奇数位于偶数的前半部分,偶数位于数组的后半部分。时间复杂度O(n)
题目分析:
类似题目:输入一个字符串,实现一个函数,使得大写字符在前半部分,小写字母在后半部分。
(1)没有要求调整后,位置不可以变化
(2)时间复杂度智能遍历一次
算法实现:
#include <stdio.h> void sort_array(int *array, int size) { int *start = array; int *end = &array[size-1]; int temp = 0; while(start < end) { if(*start%2 != 0) { start++; continue; } if(*end%2 == 0) { end--; continue; } temp = *start; *start = *end; *end = temp; } } void print(int *array, int size) { int i=0; for(;i <size; i++) printf(" %d", array[i]); printf("\n"); } int main() { int array[] = {38, 1,2,4,6,7, 9,11, 12,38}; //int in[]={9, 4, 3, 2,100, 99, 88, 77, 66, 6, 5, 4, 8, 3, 2}; int size = sizeof(array)/sizeof(int); sort_array(array, size); print(array, size); return 0; }
相关文章推荐
- 算法题目---调整数组顺序使奇数位于偶数前面
- 一道算法题——调整数组顺序使奇数位于偶数前面
- 面试算法(十三)调整数组顺序使奇数位于偶数前面
- 算法题/调整数组顺序使奇数位于偶数前面
- 算法系列——调整数组顺序使奇数位于偶数前面
- 经典算法——调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 【经典算法】:剑指offer(08)-调整数组顺序使奇数位于偶数前面
- 剑指offer-算法题练习:part15 调整数组顺序使奇数位于偶数前面
- 重拾算法之剑指Offier——调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 程序员面试29 调整数组顺序使奇数位于偶数前面
- 【微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 【100题】第五十四题 调整数组顺序使奇数位于偶数前面