21xrx.com
2025-04-03 18:05:28 Thursday
文章检索 我的文章 写文章
C++ 实现对 n 个数字进行排序
2023-07-05 06:35:43 深夜i     --     --
C++ 排序 n 个数字

C++ 是一种流行的编程语言,在编程领域中被广泛使用。其中一个最常见的应用就是对数据进行排序。在本文中,我们将介绍如何使用 C++ 对 n 个数字进行排序。

在 C++ 中,有两个非常流行的排序算法,它们分别是冒泡排序和快速排序。在这里我们将讨论它们的使用。

冒泡排序:

冒泡排序是一种简单的排序算法。它的原理是循环遍历数组,比较相邻的两个数字,并且如果它们的顺序不正确,则交换它们的位置。该算法需要多次循环遍历,每次遍历将最大的数字移动到最后面。

下面是一个使用冒泡排序的例子:

void bubble_sort(int arr[], int n)
{
  int i, j;
  for (i = 0; i < n-1; i++)
  {
    for (j = 0; j < n-i-1; j++)
    {
      if (arr[j] > arr[j+1])
      {
       int temp = arr[j];
       arr[j] = arr[j+1];
       arr[j+1] = temp;
      }
    }
  }
}

在该算法中,我们使用了两个循环,第一个循环循环了 n-1 次,每次遍历都将数组最大的数字移动到了最后面。在第二个循环中,我们比较相邻的两个数字,并且如果数字顺序不正确,则交换它们的位置。

快速排序:

快速排序是另一种经典的排序算法。它的基本原理是选一个基准值,然后将数组中的数字分成两个子数组;一个小于基准值,一个大于等于基准值。然后重复该过程,直到所有的数字都被排序完毕。

下面是一个使用快速排序的例子:

void quick_sort(int arr[], int left, int right)
{
  int i = left;
  int j = right;
  int pivot = arr[(left+right)/2];
  while (i <= j)
  {
    while (arr[i] < pivot)
      i++;
    while (arr[j] > pivot)
      j--;
    if (i <= j)
    {
      int temp = arr[i];
      arr[i] = arr[j];
      arr[j] = temp;
      i++;
      j--;
    }
  }
  if (left < j)
    quick_sort(arr, left, j);
  if (i < right)
    quick_sort(arr, i, right);
}

在该算法中,我们首先选择了一个基准值,然后分别从数组两端开始循环,并且找到第一个大于或等于基准值的数字,以及第一个小于或等于基准值的数字。然后交换这两个数字的位置,重复此过程,直到所有数字都被排序完毕。

无论你选择使用哪种算法,你都可以使用 C++ 对 n 个数字进行排序。通过实现这些算法,你可以加深对于 C++ 的理解,并且在编程领域中表现得更加优秀。

  
  

评论区