21xrx.com
2024-12-23 01:21:21 Monday
登录
文章检索 我的文章 写文章
C++整数奇偶排序
2023-07-08 09:07:06 深夜i     --     --
C++ 整数 奇偶排序 数据结构 算法

我们都知道,在计算机科学中,排序算法是最基本的算法之一。然而,在某些情况下,我们需要对数字进行特殊的排序,例如将整数按照奇偶性进行排序。这时,C++语言可以帮助我们实现这个任务。

整数奇偶排序通常被用于将奇数和偶数分别排在数组的前面和后面。在使用C++实现整数奇偶排序之前,我们需要了解一些基础知识。

首先,我们需要定义一个数组来存储这些数字。然后,我们使用冒泡排序算法来对这个数组进行排序。冒泡排序是一个比较简单的排序算法,其基本思想是在每一轮比较中,交换相邻的元素,从而将较大的元素“浮”到序列的顶端。

在进行整数奇偶排序时,我们需要将奇数排在数组的前面,同时将偶数排在数组的后面。为了实现这个任务,我们可以使用两个指针来遍历数组:一个从左到右,一个从右到左。我们可以从左边开始找到第一个偶数,并从右边开始找到第一个奇数,然后交换它们的位置。我们重复这个过程,直到指针相遇。

以下是C++代码的示例,可以实现整数奇偶排序:


#include <iostream>

using namespace std;

void OddEvenSort(int arr[], int n) {

  int left = 0, right = n - 1;

  while (left < right) {

    //从左边开始找到第一个偶数

    while (arr[left] % 2 != 0 && left < right) left++;

    //从右边开始找到第一个奇数

    while (arr[right] % 2 == 0 && left < right) right--;

    //交换两个数字的位置

    if (left < right) {

      int temp = arr[left];

      arr[left] = arr[right];

      arr[right] = temp;

      left++;

      right--;

    }

  }

}

int main() {

  int arr[] = 10;

  int n = sizeof(arr) / sizeof(arr[0]);

  cout << "原数组:";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  OddEvenSort(arr, n);

  cout << endl << "排序后:";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

以上代码将输出:

原数组:7 2 5 10 8 9

排序后:7 9 5 2 8 10

总之,使用C++语言实现整数奇偶排序是一个简单而有效的方法,可以轻松地将奇数和偶数分开,方便我们进行一系列的计算和处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复