C语言第四十四弹---调整奇偶数顺序

简介: C语言第四十四弹---调整奇偶数顺序

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

思路:通过循环分别找到奇数和偶数,并实现位置交换,需要进行多次交换,循环外层需要添加一个循环。

代码如下

#include <stdio.h>
void Swap_Parity(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while (left < right)
  {
    //寻找偶数
    while (left < right)
    {
      if (arr[left] % 2 == 0)
      {
        break;//找到第一个偶数 停止该循环
      }
      else
      {
        left++;//未找到继续寻找
      }
    }
    //寻找奇数
    while (left < right)
    {
      if (arr[right] % 2 == 1)
      {
        break;//找到第一个奇数 停止该循环
      }
      else
      {
        right--;//未找到继续寻找
      }
    }
    //交换
    if (left < right)
    {
      int tmp = arr[left];
      arr[left] = arr[right];
      arr[right] = tmp;
    }
  }
}
int main()
{
  int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  Swap_Parity(arr, sz);
  for (int i = 0; i < sz; i++)//打印
  {
    printf("%d ", arr[i]);
  }
  return 0;
}

注意每次循环条件判断都必须控制left < right 防止越界和重复交换

相关文章
|
开发框架 JavaScript 前端开发
UniApp Button讲解
UniApp Button讲解
374 1
|
JavaScript C# 开发工具
22款Visual Studio Code实用插件推荐
Visual Studio Code是一个轻量级但功能强大的源代码编辑器,轻量级指的是下载下来的Visual Studio Code其实就是一个简单的编辑器,强大指的是支持多种语言的环境插件拓展,也正是因为这种支持插件式安装环境开发让Visual Studio Code成为了开发语言工具中的霸主,让其同时支持开发多种语言成为了可能。俗话说的好:“工欲善其事,必先利其器”,安装一些实用插件对自己日常的开发和工作效率能够大大的提升,避免996从选一款好的开发插件开始。以下是我整理的一些比较实用的Visual Studio Code插件希望对大家有用,大家有更好的插件推荐可在文末留言🤞。
484 0
|
JSON 数据格式 Docker
ELK收集多个docker容器日志(十二)
filebeat收集容器日志 现在很多公司都是用docker容器来运行服务,一台机器上会有很多个docker,docker容器里面的日志也需要收集分析,filebeat也有docker容器的日志收集方案 官方配置地址https://www.elastic.co/guide/en/beats/filebeat/6.6/filebeat-input-docker.html
952 0
ELK收集多个docker容器日志(十二)
|
9月前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
377 0
|
Java Spring
Spring Boot 中的事务传播行为是什么,原理,如何使用
Spring Boot 中的事务传播行为是什么,原理,如何使用
|
消息中间件 存储 Cloud Native
如何解决 Kafka 冷读副作用
AutoMQ,新一代云原生 Kafka,解决原 Kafka 的迁移复制低效、弹性不足和高成本问题。本文探讨 Kafka 的冷读(追赶读)副作用,如硬盘 I/O 争抢、Page Cache 污染和 Zero Copy 阻塞。Kafka 的冷读依赖本地存储,导致性能瓶颈。AutoMQ 通过对象存储实现冷热隔离,避免 I/O 争抢;自主管理内存,减少 Page Cache 污染;异步 I/O 响应网络层,提高效率。此外,AutoMQ 优化冷读性能,确保批处理和故障恢复时的高效运行。
234 2
|
机器学习/深度学习 数据采集 监控
基于Python的图像识别技术在智能安防系统中的应用
【5月更文挑战第30天】 在当今社会,随着人工智能技术的飞速发展,图像识别已经成为了一个重要的研究领域。本文将介绍基于Python的图像识别技术在智能安防系统中的应用,通过对深度学习模型的讲解和实例分析,展示了如何利用Python实现高效、准确的图像识别功能,为智能安防系统的设计和实现提供了有力的技术支持。
|
应用服务中间件 Linux nginx
蓝易云 - linux查看正在运行的nginx在哪个文件夹当中
请注意,这些步骤可能需要root权限才能执行。如果你没有root权限,你可能需要使用 `sudo`命令。
304 0
|
SQL 存储 编解码
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
167 0
|
存储 数据可视化 安全
基于Kibana Dashboard创建仪表板,可视化匹配航班信息
通过本教程,您将学习如何创建、配置、共享仪表板,并与创建的仪表板进行数据交互。
907 1
基于Kibana Dashboard创建仪表板,可视化匹配航班信息