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

简介: 调整数组使奇数全部都位于偶数前面

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


输入一个整数数组,实现一个函数,


来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,


所有偶数位于数组的后半部分。


1.输入数组
2.调整数组
3.输出数组


1.输入数组


//输入
  int arr[10] = {0};
  int i = 0;
  int sz = sizeof(arr) / sizeof(arr[0]);
  for(i = 0; i < sz; i++)
  {
  scanf("%d", &arr[i]);
  }


2.调整数组


0700a67930bcfd10adf6b2bd839e5342_be65bbb44932428f8b7fb4c60b3d8fdb.png


void move_num(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while (left < right)
  {
  //从左往右找偶数,找到停下来
  while ((left < right) && (arr[left] % 2 == 1))
  {
    left++;
  }
  //从右往左找奇数,找到停下来
  while ((left < right) && (arr[right] % 2 == 0))
  {
    right--;
  }
  //交换奇偶数
  if (left < right)
  {
    int tmp = arr[left];
    arr[left] = arr[right];
    arr[right] = tmp;
    left++;
    right--;
  }
  }
}


可能存在数组全是奇数的情况,为避免越界访问,循环条件必须加上

left<right


3.输出数组


//输出
  for (i = 0; i < sz; i++)
  {
  printf("%d ", arr[i]);
  }


完整代码如下


#include<stdio.h>
void move_num(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while (left < right)
  {
  //从左往右找偶数,找到停下来
  while ((left < right) && (arr[left] % 2 == 1))
  {
    left++;
  }
  //从右往左找奇数,找到停下来
  while ((left < right) && (arr[right] % 2 == 0))
  {
    right--;
  }
  //交换奇偶数
  if (left < right)
  {
    int tmp = arr[left];
    arr[left] = arr[right];
    arr[right] = tmp;
    left++;
    right--;
  }
  }
}
int main()
{
  //输入
  int arr[10] = {0};
  int i = 0;
  int sz = sizeof(arr) / sizeof(arr[0]);
  for(i = 0; i < sz; i++)
  {
  scanf("%d", &arr[i]);
  }
  //调整
  move_num(arr, sz);
  //输出
  for (i = 0; i < sz; i++)
  {
  printf("%d ", arr[i]);
  }
  return 0;
}


af9aaeec8a3739738ccd16a61d2e78ae_8524c63de7d945eb989c034bcb01ebbf.png


目录
相关文章
【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
|
6月前
【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解
【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解
54 1
剑指offer_数组---调整数组顺序使奇数位于偶数前面
剑指offer_数组---调整数组顺序使奇数位于偶数前面
54 0
剑指offer 20. 调整数组顺序使奇数位于偶数前面
剑指offer 20. 调整数组顺序使奇数位于偶数前面
54 0
|
算法 容器
12.调整数组顺序,使得奇数在前,偶数在后
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
129 0
|
算法 前端开发
【脚趾 Offer 21 】调整数组顺序使奇数位于偶数前面
【脚趾 Offer 21 】调整数组顺序使奇数位于偶数前面
99 0
调整数组顺序使奇数位于偶数前面(简单难度)
调整数组顺序使奇数位于偶数前面(简单难度)
92 0
AcWing 32. 调整数组顺序使奇数位于偶数前面
AcWing 32. 调整数组顺序使奇数位于偶数前面
70 0
AcWing 32. 调整数组顺序使奇数位于偶数前面