(C++)整型数组A[n]中的元素调整为左右两部分,其中左边所有元素为奇数,右边所有元素为偶数。时间复杂度为O(n)。
题目:
设计算法将整型数组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)。相关推荐
- c语言学习-定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放
定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放 程序流程图: 代码: #include<stdio.h> void main() { int a[10]; int ...
- 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)
输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).(奇安信-wab前端) 例如,输入的数组为{ 1.-2.3.10. ...
- 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. JAVA: class So ...
- java 整型数组定义_在Java中定义一个具有10个元素的整型数组a的语句是:___
在Java中定义一个具有10个元素的整型数组a的语句是:___ 答: int [] arr = new int[10] 在借贷记账法下() 答:在账户结构上,"借"和"贷 ...
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...
- C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中
第一次在CSDN上写博客- 记录一下想了有那么久的,这串代码 起因是做应用密码学的作业时,有Vigenere密码的加密解密.仿射密码加密解密.Playfair算法.Hill密码 因为数据量比较大,要把 ...
- C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中
例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...
- 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...
导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...
- 将一个任意整数插入到已排列的整型数组中,插入后,数组中的数仍保持有序...
实现代码: package homework;import java.util.Scanner;public class HomeWork {public static void main(Strin ...
- 关于《输入一个字符串,内有数字和非数int字符,如a123x456,将其中连续的数作为一个整数,依次存放到整型数组a中》的一点看法
最近刚刚学习了C基础这门课程,作到了这个习题,这个题目要求将字符串中的数字作为整数存放到整型数组中,这个题目有一个特点就是字符串中除了有数字还有非数int字符.看完题目,我顿时来了兴趣. 在一开始我选 ...
最新文章
- Ruby中爬虫的实现
- 百度Apollo升级发布15大新品,还要化身无人车基建狂魔 | 一文看尽首届Apollo生态大会...
- SQL SERVER大话存储结构:数据库数据文件
- c语言获取时间并存储,如何在C程序中获取日期和时间值?
- 机器学习中为什么需要梯度下降_机器学习,梯度下降算法,问题引入
- PHP正则表达式——匹配多行
- php写的squid验证辅助器
- 邻接表1试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:icoding---算法改进--配详细注释
- linux烧录文件的格式,制作emmc 烧录文件
- 64 SD配置-交货凭证配置-在交货时定义项目类别确定
- 3D几何图形PS笔刷下载安装
- Centos7.2离线安装Docker和nvidias-docker2安装教程
- 软件测试人员考核办法
- 1g内存编译android,如何让Android手机1G内存就“够用”?
- 硬盘柱面损坏怎么办_硬盘0磁道损坏怎么办
- ElasticSearch中Transient与Persistent的区别
- Codeforces Round #703 (Div. 2) C. Guessing the Greatest
- 铁甲小宝像车轮的是什么机器人_铁甲小宝中最神秘的人物,在剧中的地位是无人可以动摇的...
- keepalived简易安装及配置文件详解
- 驱动木马之类的问题 zz