设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分.(利用C语言)设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分,将所有的偶数
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 21:22:18
设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分.(利用C语言)设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分,将所有的偶数
设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分.(利用C语言)
设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分.要求尽可能的少用临时单元并使用时间少.(利用C语言)
设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分.(利用C语言)设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分,将所有的偶数
/*
\x09i从a的首部往后移动,j从a的尾部往前移动,若a[i]为偶数且a[j]为奇数,则交换,否则根据情况移动i或j.
\x09时间复杂度:length(a).
\x09空间复杂度:数组a.
\x09个人认为这是时空效率最好的,其他网友不服来辩.
*/
#include <iostream>
using namespace std;
const int n = 10;
int main()
{
\x09int a[n] = {3,18,2,12,12,5,6,7,8,9};
\x09int i = 0;
\x09int j = n;
\x09while (i < j)
\x09{
\x09\x09if (0 == a[i] % 2 && 1 == a[j] % 2)
\x09\x09{
\x09\x09\x09swap(a[i],a[j]);\x09//a[i] = a[i] ^ a[j]; a[j] = a[i] ^ a[j]; a[i] = a[i] ^ a[j];
\x09\x09\x09i++;
\x09\x09\x09j--;
\x09\x09\x09continue;
\x09\x09}
\x09\x09if (1 == a[i] % 2)
\x09\x09{
\x09\x09\x09i++;
\x09\x09}
\x09\x09if (0 == a[j] % 2)
\x09\x09{
\x09\x09\x09j--;
\x09\x09}
\x09}
\x09for (i = 0; i < n; i++)
\x09{
\x09\x09cout <<a[i] <<" ";
\x09}
\x09cout <<endl;
\x09return 0;
}
(如有任何疑问请追问,我一直在线)