码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C语言实现调整数组中奇数偶数顺序


    目录

    • 1.思路
    • 2. 代码

    1.思路

    1. 给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置
    2. 循环进行一下操作
      a. 如果left和right表示的区间[left, right]有效,进行b,否则结束循环
      b. left从前往后找,找到一个偶数后停止
      c. right从后往前找,找到一个奇数后停止
      d. 如果left和right都找到了对应的数据,则交换,继续a,
      在这里插入图片描述

    left遇到偶数停止,遇到奇数left++
    right遇到奇数停止,遇到偶数right++
    在这里插入图片描述

    2. 代码

    void order(int arr[], int sz)
    {
    	int* left = arr;
    	int* right = arr + sz - 1;
    	while (left < right)
    	{
    		// 从前往后,找到一个偶数,找到后停止
    		while (((left < right) && (*left) % 2 != 0))
    		{
    			left++;
    		}
    		// 从后往前找,找一个奇数,找到后停止
    		while (((left < right) && (*right) % 2 == 0))
    		{
    			right--;
    		}
    		// 如果偶数和奇数都找到,交换这两个数据的位置
    		// 然后继续找,直到两个指针相遇
    		if (left < right)
    		{
    			int tmp = *left;
    			*left = *right;
    			*right = tmp;
    		}
    	}
    }
    
    int main()
    {
    	int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10};
    	int size = sizeof(arr1) / sizeof(arr1[0]);
    	order(arr1, size);
    	for (int i = 0; i < size; i++)
    	{
    		printf("%d ", arr1[i]);
    	}
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这里插入图片描述

  • 相关阅读:
    IP地址划分知识点总结
    用户交互引导大模型生成内容特征,LLM-Rec框架助力个性化推荐!
    前端开发攻略---用原生JS在网页中也能实现语音识别
    阿里家代码规范学习笔记
    Rockwell EDI 855 采购订单确认报文详解
    构造函数可以在类的私有部分中定义吗?
    绘画系统(02):【纲】Paint Devices and Backends[官翻]
    一个月赚够一年钱的“服装博览会”,堪称商户老板的噩梦!
    MySQL如何导入大量数据?
    Android源码笔记--恢复出厂设置
  • 原文地址:https://blog.csdn.net/m0_63440113/article/details/134000172
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号