1.调整数组使奇数全部都位于偶数前面。
题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
第一种方法:特别常见而且很普通的算法,用一个数组存储,遍历。结果分类。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
void sort(int *arr,int len)
{
for(int i=0;i<len;i++)
{
if(arr[i]%2!=0)
printf("%d ",arr[i]);
}
for(int i=0;i<len;i++)
{
if(arr[i]%2==0)
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int len=sizeof(arr)/sizeof(arr[0]);
sort(arr,len);
return 0;
}
这种方法是常规做法,一般情况下这是第一思路,大家都很容易想到。但是不足的是时间复杂度很高O(n^2).
第二种方法主要是类似于折半查找的方式,用指针左右判断存放如数组里面。
#include<