题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 创建新的数组用来存放偶数,遍历原数组,讲偶数存放到新数组中,同时删除偶数,再将偶数数组,push_back到 ...
分类:
编程语言 时间:
2016-08-11 15:28:03
阅读次数:
188
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个 ...
分类:
编程语言 时间:
2016-06-25 13:41:48
阅读次数:
266
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 public class Solution { //保证奇数和奇数,偶数和偶数之间的相对位置不变。 public v ...
分类:
编程语言 时间:
2016-06-14 11:33:21
阅读次数:
151
扩展:当不需要关注奇偶数原来的顺序时 参考: http://www.cnblogs.com/xing901022/p/3755795.html http://blog.chinaunix.net/uid-26548237-id-3753247.html http://www.cnblogs.com/ ...
分类:
编程语言 时间:
2016-05-19 10:33:48
阅读次数:
160
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 class Solution { public: void reOrderArray(vector<int> &ar ...
分类:
编程语言 时间:
2016-05-18 00:02:12
阅读次数:
179
题目:调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分程序1.0:使用两个指针一个指向头一个指向尾,如果头指针遇到奇数就后移,遇到偶数就和尾指针指向的元素交换,头指..
分类:
编程语言 时间:
2016-05-17 19:54:40
阅读次数:
233
调整数组顺序使奇数位于偶数前面描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。分析
这里很容易联想到快速排序基于中间值,左右两边基本有序的方法。但是快速排序是一个不稳定算法,会改变数与数之间的位置,虽然能满足题干的前半部分,但是满足不了条件—并保证奇数和奇数,偶数和偶数之间...
分类:
编程语言 时间:
2016-05-11 07:20:34
阅读次数:
318
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。首先,可以想到,用前后两个指针一个在数组首一个在数组尾同时往数组中间遍历,当遇到前指针遇到偶数后指针遇到奇数时,就将两个数交换,直到两指针相..
分类:
编程语言 时间:
2016-05-10 07:22:18
阅读次数:
178
第一种:开辟一个一样大小的数组,遍历原数组的数据,把原数组奇数依次存放在新数组的前面,偶数存放在后面。时间复杂度:O(n^2);空间复杂度:O(n)缺陷:效率太差#include<stdio.h>
#include<stdlib.h>
voidAdjust(int*src,int*des,intn)
{
intindex=0;
for(int..
分类:
编程语言 时间:
2016-05-09 07:21:48
阅读次数:
189
题目描述:给定一个整数数组,实现一个函数来调整数组中的数字顺序,使得奇数都在这个数组中的前半部分,偶数都在数组中的后半部分。
比如数组为:[1,2,3,4,5]。那么调整完后的数组为:[1,3,5,2,4]
笨方法
笨方法是从数组的第一个成员开始寻找,每当遇到一个偶数就将它取出,将后面所有的成员依次向前挪一位,再将这个取出的偶数放在最后一位。时间复杂度为O(n^2)
好方法
...
分类:
编程语言 时间:
2016-05-07 10:37:08
阅读次数:
142