关于 奇偶数 排列的方法(C语言)

C语言实现数组排序并分组奇偶数 今天遇到一个问题,值得探讨一下,问题如下: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 首先拿到这道题目,我们先可以很顺利的写出主函数的内容,然后再重点讨论这个用来调整数组的函数,程序如下: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void print(int arr[], int sz) { int i = 0; ... 阅读详情

之前看到一道题:将一个序列里面的元素,按照奇数在前,偶数在后的序列排列起来。

想到三种方法:

方法一:类似冒泡的方法,两个指针,从前遍历整个序列,将偶数一个个的往后搬移,直到某个偶数后面不会再有奇数。

此方法的时间复杂度O(N^2)    空间复杂度O(1)   相同性质的相对位置不稳定

代码:


测试结果:


方法二:添加一个计数器count,遇到偶数时,count++,然后继续遍历,遇到奇数时与前count个元素交换,最后实现奇数在前偶数在后的状态。

        相对于方法一,此方法有一定的优化:时间复杂度为O(N)    空间复杂度为O(1)   相同性质的相对位置仍不稳定

代码:


测试检测:


方法三:创建临时空间,才用类似并归法,在临时空间排序,最后拷贝到原空间

1.奇数从数组0号位开始   偶数从最后一个号位开始      

时间复杂度: O(N^2)                   空间复杂度:O(N)                    仍不稳定

代码:


测试检测:


2.改进一下,奇数从0号位开始,偶数从奇数个数 oddsize 号位开始

时间复杂度:O(N^2)         空间复杂度: O(N)                 相同性质数据相对位置不改变,具有稳定性稳定

代码:

测试检测:


其他的辅助操作函数:



由于知识点的问题,眼界太局限了,没有找到时间复杂度为O(N) 空间复杂度为O(1)并且排序稳定的算法。

还需努力!!!!!


C语言判断奇偶数的方法及示例代码 以上是C语言中常用的三种判断奇偶数的方法及相应的示例代码。根据具体的需求和编程习惯,可以选择适合的方法来判断奇偶性。希望本文能对你有所帮助!对于任意整数x,如果x % 2的结果为0,则x为偶数;如果x % 2的结果为1,则x为奇数。奇偶数判断是编程中常见的需求,C语言提供了几种方法来判断一个数是奇数还是偶数。下面将介绍三种常用的方法,并提供相应的示例代码。C语言中的条件表达式可以根据判断条件的真假返回不同的结果。对于二进制数而言,奇数的最低位(个位)为1,偶数的最低位为0。方法一:使用取模运算符(%) 阅读详情

相关推荐

ADS 2024 Circuit Envelope 仿真:3步配置调制源,分析5G NR EVM与ACPR

本文详细介绍了ADS 2024 Circuit Envelope仿真技术在5G NR调制源配置与关键指标分析中的应用。通过3步配置调制源,工程师可以高效评估EVM与ACPR等关键指标,特别适用于功放设计中的非线性效应诊断。文章还提供了优化仿真设置和精确提取EVM、ACPR的实用方法,助力5G射频前端设计。

weixin_28559803的博客 384

使用c语言实现调整奇偶数的顺序

要求:使所有奇数排在偶数前面; 第一种方法(使用指针完成) #include<stdio.h> int main() { int i = 0, x; int a[10] = { 1,1,2,2,2,1,1,2,1,2 }; int b[10] = {0}; int* p = b; x = sizeof(a) / sizeof(a[0]); for (i = 0; i < x; i++) { if (a[i] % 2 == 1) { *p = a[i];

dghehe的博客 2611

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

将一个数组里面的所有的奇数排在前面,偶数排在后面(两种方法)——C语言

将一个数组里面的所有的奇数排在前面,偶数排在后面(两种方法)——C语言

cx330的博客 2354

【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL

生成器的任务是接收随机噪声向量作为输入,并尽可能生成与真实数据相似的样本,而判别器则是一个二分类器,旨在区分输入的样本是来自生成器生成的,还是来自真实数据。在训练过程中,生成器和判别器通过对抗学习的方式相互博弈,生成器的目标是生成足以欺骗判别器的样本,而判别器的目标则是尽可能准确地判断样本的真实性。GAN网络在多个领域展现了强大的能力,能够生成与训练数据分布相似的新数据,包括但不限于图像生成、图像风格转换、超分辨率、数据增强、视频生成、自然语言处理、医学图像处理以及游戏与虚拟现实等。

hustef的博客 1521

1.triton镜像使用

1)拉取镜像2)启动容器指定模型仓库时可以执行server下的./fetch_model.sh,见2.2部分GPU版本的启动CPU版本的启动区别只在于--gpus=1这个参数注意:docker19.03之前的版本使用gpu要指定显卡硬件名,docker19.03之后的需要安装nvidia-container-toolkit或nvidia-container-runtime安装之后要重启docker查看gpus参数是否安装成功重新执行我遇到了如下错误先使用非GPU版本的。

天启的博客 2077

用C语言调整数组中奇偶数顺序

调整数组使奇数全部位于偶数前面

zzx_yyds的博客 1030

安卓无障碍服务保活实战:如何用AccessibilityService实现后台常驻(附完整代码)

本文深入解析如何利用Android无障碍服务(AccessibilityService)实现后台服务保活,涵盖多版本系统适配、前台服务集成、开机自启机制等关键技术。通过详细的Kotlin代码示例和合规性指导,帮助开发者构建稳定可靠的后台服务解决方案,同时避免因滥用无障碍服务导致的应用下架风险。

milk5的博客 1073

经典左旋,指针面试题

今天给大家带来几道面试题!实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB我们可以先自己自行思考,下面是参考答案:具体思路:我们先创建一个倒序字符串的函数,具体是要将字符串分别进行倒叙后,才能得到左旋字符串。即:先将左旋前部分倒叙,再将后半部分进行倒叙,最后将整个字符串进行倒叙。即可得到左旋n位的字符串。具体思路:这个方法则是运用了字符串函数进行左旋,

2302_81249757的博客 556

SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

文章目录一.简要介绍1.node file2.edge file3.lane definitions(1)路段细分(2)邻近的对向车道(3)删除边或车道4.type file(1)简要概述(2)edge定义中引用type文件的示例(3)指定车辆种类的速度限制5.connections file(1)简要概述:(2)connection的属性参数(3)删除连接(4)设置连接的优先级(5)同一边的多个连接二.演示示例:1.自定义编写node file2.自定义编写edge file3.自定义编写type fil

weixin_50632459的博客 5016

硬件作品3----STM32F103RCT6最小系统板MCU配置

电路未调试成功,目前刚打板,后续需要补充或者改版另行注明。

weixin_58364194的博客 5562

以下c语言程序片段用于估测cpu的cache参数,优酷【C/C++类】:笔试题目1(最全)...

问答程序改错int fun(vector& val) {copy(val.begin() , val.end() , ostream_iterator(cout,"\n"));...... } void main() {int a[5] = {1,2,3,4,5};vector v;copy(a , a + 5 , v.begin());fun(vector(v));prim(n,...

weixin_33622043的博客 346

OpenAI Function Calling 实战:让 Agent 自动调用外部 API 接口

在 2023 年 6 月之前,大语言模型(LLM)的能力边界是清晰的:它能说会道,能写诗作赋,也能帮你润色文案。但如果你问它"北京现在天气怎么样",它要么答不上来,要么基于过时的训练数据给你一个错误答案。原因很简单——LLM 的训练数据是有截止日期的,它活在"过去"。2023 年 6 月,OpenAI 在 GPT-4 的更新中引入了 Function Calling 功能,彻底改变了这一局面。Function Calling(也叫 Tool Use 或工具调用)是一种让 LLM 与外部系统交互的机制。

2201_76125393的博客 88

算法学习之路4 qsort的使用,让问题简单化

在算法题中,也有很多跟排序有关的题目。如果要自己去写,那就太耗时了。在C语言中也有一个内置的排序函数qsort,用起来还是很方便的。先简单介绍一下函数。

本尔2008的博客 156

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

《九日集训》第五日

一、今日知识点总结 指针(pointer)定义:用来存放地址的变量。 定义一个指针变量 指针类型 *变量名 int *intp char *charp float *floatp 取一个变量的地址 //基本类型的地址 int a = 3; int *p = &a; //数组的地址 int a[]= int [4]; int *p = a; 给定地址,取地址对应的值 int a = 3; int *p = &a; //p代表地址。*p代表地址为p的地方存储的内容

weixin_44373236的博客 1279

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

调整数组使奇数位全部位于偶数位前面

方法一: void reverse(int a[], int n) { int left = 0; int right = n - 1; while(left &lt; right) { //从左边开始找第一个偶数 while((left &lt; right) &amp;&amp; (a[left] % 2 != 0)) { left++; } //从右边开始找...

blame_的博客 330

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

3090:练16.2 奇偶数判断(C、C++、python)

3090:练16.2 奇偶数判断(C、C++、python)

青少年趣味编程 899

位运算判断奇偶数_位运算判断奇偶数_title: LeetCode922奇偶数组排列——细想与逻辑...

title: LeetCode922奇偶数组排列——细想与逻辑 date: 2019-02-28 11:37:15 tags: LeetCode系列LeetCode922:奇偶数组排列——细想与逻辑LeetCode的922题目是:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以...

weixin_30035343的博客 272

django 奇偶数

我们知道django 没有实现奇偶数的模板 ,所以我们自己写一个方法实现一个 类似奇偶数实现的效果 model.py 如下 class CustomerDetail(models.Model): customer = models.ForeignKey(CustomerInfo) contact_time= models.DateTimeField('联系日期',auto_now_

yjf997234900的专栏 905

C语言奇偶数排序

题目描述:对一个整数数组进行奇偶数排序。排序的规则是奇数在前,偶数在后。(按照奇偶数分成两部分后,分别按从小到大顺序排序。输入:8 5 3 6 13 3 10 4 6 9 4 13。输出:3 3 5 9 13 13 4 4 6 6 8 10。方法:利用双指针与插入排序,一次遍历完成。输入:1 2 3 4 5 6。输出:1 3 5 2 4 6。

M0x0U的博客 524

伊吖学C笔记(6、数、求和、排列)

数学问题可以很轻松地通过程序来完成。

woho778899的博客 1581

【C语言】数据结构C语言版 实验1 线性表的顺序实现

运行环境:Dev-C++ vs2013可能不能运行 首先新建一个头文件sequlist.h #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef int datatype; typedef struct{ datatype a[MAXSIZE]; int size; ...

点滴记忆 7426

奇偶数排序

奇偶数排序 题目描述 输入 1010 个整数,彼此以空格分隔 重新排序以后输出 (也按空格分隔) , 要求: 先输出其中的奇数,并按从大到小排列; 然后输出其中的偶数,并按从小到大排列. 样例输入 Copy to Clipboard 9 80 87 66 73 51 38 21 60 98 样例输出 Copy to Clipboard 87 73 51 21 9 38 60 66 80 98 include using namespace std; int main() { int a[10]; int i

weixin_51231862的博客 259

C语言:使用指针,封装一个函数, // 使输入的奇数从小到大排列,奇数排列完毕之后,再把偶数从大到小进行排列, // 最终输出整个

// 使用指针,封装一个函数, // 使输入的奇数从小到大排列,奇数排列完毕之后,再把偶数从大到小进行排列, // 最终输出整个 #include <stdio.h> void Jopaixu(int *p,int num); int main(int argc, char const *argv[]) { int num; printf(“请输入一个大于你要输入数字个数的数字:\n”); scanf("%d",&num); int arr[10] = {1,2,3,4,5,6,7,8,

qq_54127452的博客 549

妙解C语言——调整奇数偶数顺序

调整数组中奇数偶数顺序解题思想

AlanTZT的博客 1218

C语言实例(二)

交换两个整数 #include <stdio.h> #include <stdlib.h> int main() { int a,b,c; printf("please enter two integer\n"); scanf("%d%d",&a,&b); c=a; a=b; b=c; printf("%d %d",a,b); return 0; } 判断奇偶数 #include <stdi

m0_62654235的博客 1026
上一篇: 内存泄漏和野指针
下一篇: 数据结构——链表逆序打印(C语言版)
Code_zx
博客等级 码龄9年 83粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值