C++整型数组从小到大排序
时间: 2023-09-02 17:10:00 浏览: 169
好的,下面是一种常见的 C++ 整型数组从小到大排序的方法,使用了快速排序算法:
```C++
void quick_sort(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--;
while (i < j && arr[i] <= pivot) i++;
if (i < j) swap(arr[i], arr[j]);
}
swap(arr[left], arr[i]);
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
void sort_array(int arr[], int size) {
quick_sort(arr, 0, size - 1);
}
```
其中,我们使用了快速排序算法,它的基本思想是:选择一个基准元素,将数组分为两部分,左边部分都小于等于基准元素,右边部分都大于等于基准元素,然后递归对左右两部分进行排序。
在代码中,我们使用了递归的方式实现快速排序算法,首先选择数组的第一个元素作为基准元素,然后设置两个指针 i 和 j,分别指向数组的左右两端。接着,从右往左扫描数组,找到第一个小于基准元素的元素,然后从左往右扫描数组,找到第一个大于基准元素的元素,交换它们的位置。重复执行这个过程,直到 i 和 j 相遇,最后将基准元素与 i 所指向的位置交换,这样基准元素就被放置在了正确的位置上。然后递归对左右两部分进行排序,直到只剩下一个元素,排序完成。
阅读全文