题目:

设计算法将整型数组A[n]中的元素调整为左右两部分,其中左边所有元素为奇数,右边所有元素为偶数。并要求算法的时间复杂度为O(n)。


原理 :

用顺序表,原顺序表从 0 ~ i-1 遍历,

若为奇数,在新的表左边开始存;

若为偶数,从新的表右边开始存;

#include<iostream>
using namespace std;
const int MaxSize = 100;template <class T>
class SeqList {public:SeqList() {length = 0;}SeqList(T a[],int n);~SeqList() {}int Length() {return length;}Swap(SeqList &a ,int n); //转换算法void Print();private:T data[MaxSize];int length;
};template<class T>
SeqList<T>::SeqList(T a[],int n) {for(int i=0;i<n;i++) {data[i]=a[i];}length=n;
}template<class T>
SeqList<T>::Swap(SeqList &a,int n) {T b[n]={0};for(int k=0,i=0,j=n-1;i<n;i++) {if(a.data[i]%2==1) b[k++]=a.data[i];if(a.data[i]%2!=1) b[j--]=a.data[i];}for(int i=0;i<n;i++) {a.data[i]=b[i];}
}template<class T>
void SeqList<T>::Print() {for(int i=0;i<length;i++) {cout<<data[i]<<" ";}cout<<endl;
}int main() {int A[]={8,4,1,6,7,4,9,6,4};SeqList<int> SL(A,sizeof(A)/sizeof(int));SL.Print();SL.Swap(SL,SL.Length());SL.Print();return 0;
}

8 4 1 6 7 4 9 6 4
1 7 9 4 6 4 6 4 8

--------------------------------


参考:

https://blog.csdn.net/m0_37385780/article/details/80474552

(C++)整型数组A[n]中的元素调整为左右两部分,其中左边所有元素为奇数,右边所有元素为偶数。时间复杂度为O(n)。相关推荐

  1. c语言学习-定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放

    定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放 程序流程图: 代码: #include<stdio.h> void main() { int a[10]; int ...

  2. 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)

    输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).(奇安信-wab前端) 例如,输入的数组为{ 1.-2.3.10. ...

  3. 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. JAVA: class So ...

  4. java 整型数组定义_在Java中定义一个具有10个元素的整型数组a的语句是:___

    在Java中定义一个具有10个元素的整型数组a的语句是:___ 答: int [] arr = new int[10] 在借贷记账法下() 答:在账户结构上,"借"和"贷 ...

  5. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  6. C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中

    第一次在CSDN上写博客- 记录一下想了有那么久的,这串代码 起因是做应用密码学的作业时,有Vigenere密码的加密解密.仿射密码加密解密.Playfair算法.Hill密码 因为数据量比较大,要把 ...

  7. C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中

    例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...

  8. 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...

    导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...

  9. 将一个任意整数插入到已排列的整型数组中,插入后,数组中的数仍保持有序...

    实现代码: package homework;import java.util.Scanner;public class HomeWork {public static void main(Strin ...

  10. 关于《输入一个字符串,内有数字和非数int字符,如a123x456,将其中连续的数作为一个整数,依次存放到整型数组a中》的一点看法

    最近刚刚学习了C基础这门课程,作到了这个习题,这个题目要求将字符串中的数字作为整数存放到整型数组中,这个题目有一个特点就是字符串中除了有数字还有非数int字符.看完题目,我顿时来了兴趣. 在一开始我选 ...

最新文章

  1. Ruby中爬虫的实现
  2. 百度Apollo升级发布15大新品,还要化身无人车基建狂魔 | 一文看尽首届Apollo生态大会...
  3. SQL SERVER大话存储结构:数据库数据文件
  4. c语言获取时间并存储,如何在C程序中获取日期和时间值?
  5. 机器学习中为什么需要梯度下降_机器学习,梯度下降算法,问题引入
  6. PHP正则表达式——匹配多行
  7. php写的squid验证辅助器
  8. 邻接表1试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:icoding---算法改进--配详细注释
  9. linux烧录文件的格式,制作emmc 烧录文件
  10. 64 SD配置-交货凭证配置-在交货时定义项目类别确定
  11. 3D几何图形PS笔刷下载安装
  12. Centos7.2离线安装Docker和nvidias-docker2安装教程
  13. 软件测试人员考核办法
  14. 1g内存编译android,如何让Android手机1G内存就“够用”?
  15. 硬盘柱面损坏怎么办_硬盘0磁道损坏怎么办
  16. ElasticSearch中Transient与Persistent的区别
  17. Codeforces Round #703 (Div. 2) C. Guessing the Greatest
  18. 铁甲小宝像车轮的是什么机器人_铁甲小宝中最神秘的人物,在剧中的地位是无人可以动摇的...
  19. keepalived简易安装及配置文件详解
  20. 驱动木马之类的问题 zz

热门文章

  1. word中的方括号怎么删_word中怎么快速删除所有的括号及内容
  2. 安防监控摄像机云储存如何开通
  3. JAVA除数为0报错?
  4. origin柱状图显示具体数据值
  5. 刽子手c语言,古代神秘职业:刽子手的祖师爷
  6. html 批量pdf 打印,html转pdf打印
  7. 虚拟机服务器系统蓝屏怎么办,虚拟机windows 2008 R2 系统蓝屏
  8. TL431-精密基准电压源
  9. 关闭ntp服务的 monitor monlist,解决漏洞CVE-2013-5211
  10. Ubuntu18.04 Deb 包安装方法