21xrx.com
2024-11-22 08:05:33 Friday
登录
文章检索 我的文章 写文章
C++实现:输入n个整数,按照从大到小的顺序排列
2023-07-12 11:01:22 深夜i     --     --
C++ 整数 从大到小 排序

在计算机科学领域中,排序算法是一种常见的算法。其中,从大到小排列的算法就是一种常见的排序方式。在C++中,可以使用不同的算法来实现从大到小排列,如冒泡排序、选择排序、快速排序等。

冒泡排序是一种比较简单的排序算法,可以通过比较相邻两个元素的大小来进行排序。比较过程中,如果前面的元素比后面的元素大,则交换位置。通过多次比较和交换,最终可以将序列中的元素按照从大到小的顺序排列。

选择排序是另一种常见的排序算法,其实现原理是不断选择剩余部分中最小的元素,并将其放到已排序的序列的末尾。在选择过程中,通过比较所有元素的大小来进行排序。

快速排序是一种更高效的排序算法,其实现原理是选择一个元素作为基准,将序列中的其他元素分成小于基准和大于基准两部分,然后递归排序这两部分。快速排序算法的效率主要取决于基准的选择以及分割的方式。

以下是使用C++实现从大到小排列的示例代码,其中选择了快速排序算法:


#include <iostream>

using namespace std;

void quickSort(int arr[], int left, int right) {

  int i = left, j = right;

  int tmp;

  int pivot = arr[(left + right) / 2];

  /* partition */

  while (i <= j) {

    while (arr[i] > pivot)

      i++;

    while (arr[j] < pivot)

      j--;

    if (i <= j) {

      tmp = arr[i];

      arr[i] = arr[j];

      arr[j] = tmp;

      i++;

      j--;

    }

  };

  /* recursion */

  if (left < j)

    quickSort(arr, left, j);

  if (i < right)

    quickSort(arr, i, right);

}

int main() {

  int n, i;

  cin >> n;

  int arr[n];

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

    cin >> arr[i];

  quickSort(arr, 0, n - 1);

  for (i = n - 1; i >= 0; i--)

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

  return 0;

}

在上述代码中,首先通过cin输入n个整数,然后将其存储在一个数组中。然后调用quickSort函数进行排序,并最终通过cout按照从大到小的顺序输出数组中的元素。

在实际应用中,我们可以通过不同的排序算法来实现从大到小的顺序排列,并且可以根据待排序元素的数量及其分布情况选择不同的排序算法以获得更好的效率。C++作为一种常见的编程语言,可以轻松实现各种排序算法,为我们提供了便捷的工具和方法。

  
  

评论区

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