1.快速排序
1)快速排序(自定义实现)
Quick_Sort 函数:它采用一个整数数组 arr,以及两个索引 begin 和 end,表示排序范围的起始和结束位置。如果 begin 大于或等于 end,则数组无需排序,因此直接返回。否则,它选择一个基准元素(通常是数组的第一个元素),然后通过比较和交换操作,将数组分成两部分:小于基准的元素和大于基准的元素。然后,它递归地对这两部分数组进行排序。
#include <iostream>
void Quick_Sort(int arr[], int begin, int end) {
if (begin >= end) // 基本情况:当begin大于等于end时,无需排序
return;
int tmp = arr[begin];
int i = begin;
int j = end;
while (i != j) {
while (arr[j] >= tmp && j > i)
j--;
while (arr[i] <= tmp && j > i)
i++;
if (j > i) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[begin] = arr[i];
arr[i] = tmp;
Quick_Sort(arr, begin, i - 1); // 递归排序左子数组
Quick_Sort(arr, i + 1, end); // 递归排序右子数组
}
int main() {
int a[] = { 5, 2, 3, 9, 8, 7, 6, 1, 4 }; // 修正数组的声明
int length = sizeof(a) / sizeof(a[0]); // 计算数组长度
Quick_Sort(a, 0, length - 1); // 调用快速排序函数
for (int i = 0; i < length; i++) {
std::cout << a[i] << " ";
}
std::cout << std::endl;
return 0;
}
2)快速排序(std::使用)
使用 std::sort 对数组进行升序排序
std::sort(myArray, myArray + arraySize);
#include <iostream>
#include <algorithm> // 包含标准排序函数
int main() {
int a[] = {5, 2, 3, 9, 8, 7, 6, 1, 4};
int length = sizeof(a) / sizeof(a[0]);
std::sort(a, a + length); // 使用 std::sort 进行排序
for (int i = 0; i < length; i++) {
std::cout << a[i] << " ";
}
std::cout << std::endl;
return 0;
}