21xrx.com
2024-11-10 00:34:31 Sunday
登录
文章检索 我的文章 写文章
C++实现递增排序的代码
2023-06-27 18:18:57 深夜i     --     --
排序 递增 C++代码

C++是一门流行的编程语言,可以用于解决各种问题和开发应用程序。其中递增排序是一个常见的问题,我们可以使用C++语言来实现递增排序。

递增排序是将一组无序的元素按照从小到大的顺序排列的过程。C++中提供了许多排序算法,例如冒泡排序、插入排序、快速排序等。这里我们选择使用快速排序来实现递增排序的功能。

快速排序的核心思想是分治法。我们选取一个基准元素,将待排序的元素按照基准元素分成左右两部分,左边的元素都小于基准元素,右边的元素都大于基准元素。之后再递归地对左右两部分进行快速排序,最终得到排好序的数组。以下是C++实现递增排序的代码:


#include <iostream>

using namespace std;

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

  if (left >= right)

    return;

  

  int pivot = arr[left];

  int i = left, j = right;

  while (i < j) {

    while (i < j && arr[j] > pivot)

      j--;

    

    arr[i] = arr[j];

    while (i < j && arr[i] < pivot) {

      i++;

    }

    arr[j] = arr[i];

  }

  arr[i] = pivot;

  quickSort(arr, left, i - 1);

  quickSort(arr, i + 1, right);

}

int main() {

  int arr[] = 7;

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

  quickSort(arr, 0, n - 1);

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

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

  }

  cout << endl;

  return 0;

}

上述代码中,quickSort函数中的left和right参数表示数组的左右边界。我们首先在数组中选取第一个元素作为基准元素pivot,然后用两个指针i和j分别指向数组的左右两端。

接下来,我们在数组中不断交换元素,使得左边的元素都小于基准元素,右边的元素都大于基准元素。具体操作是,从右边开始找到第一个小于pivot的元素,将它赋值给arr[i]。然后从左边开始找到第一个大于pivot的元素,将它赋值给arr[j]。如此循环,直到i >= j为止。

最后,将pivot放到它最终的位置,即arr[i]的位置上。之后递归地对左右两部分分别进行快速排序,最终得到排好序的数组。

在main函数中我们创建一个整数数组arr,并调用quickSort函数进行排序。最后我们用循环打印出排好序的数组。

以上就是使用C++实现递增排序的代码。快速排序是一种高效的排序算法,可以在O(nlogn)的时间内完成递增排序。掌握该算法的实现,对于编写高性能的应用程序是非常有帮助的。

  
  

评论区

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