一个数组奇数在左排序,偶数在右,c语言将数组中的奇数偶数分别排序

  一个数组奇数在左排序,偶数在右,c语言将数组中的奇数偶数分别排序

  NC77调整数组顺序,使奇数排在偶数之前(1)

  本文描述了一个长度为N整数数组,并实现了一个函数来调整数组中数字的顺序,使所有奇数位于数组的前部,所有偶数位于数组的后部,奇数与奇数、偶数与偶数之间的相对位置保持不变。

  数据区域:数组中每个数字的值。

  需求:时间复杂度,空间复杂度

  高级:时间复杂性,空间复杂性

  示例1输入:

  [1,2,3,4]返回值:

  [1,3,2,4]例2输入:

  [2,4,6,5,7]返回值:

  [5,7,2,4,6]例3输入:

  [1,3,5,6,7]返回值:

  [1,3,5,7,6]原位暴力置换法的思考:

  从0到n遍历整个数组,遇到奇数时向前移动奇数,记录奇数个数。

  代码如下:

  #包含位/标准数据。h

  使用命名空间std

  Voidshift (vector int v,int left,int right)//将v[right]放入v[left]中,并将v[left,right-1]向右移动。

  {

  if (left==right)

  {

  返回;

  }

  int k=v[right];

  while(右/左)

  {

  v[右]=v[右-1];

  右-;

  }

  v[left]=k;

  }

  向量整型数组(向量整型数组)

  {

  int len=0;//用来记录奇数的个数,作为以后棋步的起始位置。

  for(int k=0;k array . size();k)

  {

  if (array[k] % 2==1)

  {

  shift(array,len,k);

  len

  }

  }

  返回数组;

  } O(N)使用辅助数组的求解思路:

  遍历整个数组,统计奇数个数,申请辅助数组作为返回结果。如果是基数,就从下标0位置放回。如果是偶数,就从奇数总数的下标开始放回。代码如下:

  向量整型数组(向量整型数组)

  {

  int n=array . size();

  vector int RES(n);

  int奇数=0;

  //计数奇数

  for(int I=0;I n;我)

  {

  if (array[i] % 2)

  奇数;

  }

  //x和Y分别代表答案中奇数和偶数的坐标

  int x=0,y=奇数;

  for(int I=0;I n;我)

  {

  if (array[i] % 2)

  {

  RES[x]=array[I];//奇数

  }

  其他

  {

  RES[y]=array[I];//偶数

  }

  }

  返回res

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: