#ifndef SORT_ALGORITHMS_APP_HPP #define SORT_ALGORITHMS_APP_HPP /** * @file app.hpp * @brief 三种经典排序算法的函数声明 * * 所有排序函数均对整型数组进行升序(非降序)排列。 * 不允许使用标准库中的 std::sort。 */ namespace sort { /** * @brief 冒泡排序 (Bubble Sort) * * 通过相邻元素比较和交换,将最大元素逐步“冒泡”至数组末尾。 * 平均 / 最坏时间复杂度 O(n²),最好 O(n)(已有序时借助优化标记)。 * * @param arr 待排序的整型数组 * @param n 数组元素个数 */ void bubbleSort(int arr[], int n); /** * @brief 快速排序 (Quick Sort) — 便捷入口 * * 调用递归核心版本,默认对 arr[0 .. n-1] 排序。 * 平均时间复杂度 O(n log n),最坏 O(n²)。 * * @param arr 待排序的整型数组 * @param n 数组元素个数 */ void quickSort(int arr[], int n); /** * @brief 快速排序递归核心 * * 选取基准元素(此处固定取 arr[low]),将数组划分为左右两部分, * 左半部分 ≤ 基准 ≤ 右半部分,然后递归排序左右子区间。 * * @param arr 待排序数组 * @param low 子区间起始下标 * @param high 子区间结束下标 */ void quickSort(int arr[], int low, int high); /** * @brief 选择排序 (Selection Sort) * * 每轮从未排序部分选出最小元素,与未排序部分的首位交换位置。 * 时间复杂度始终 O(n²),不稳定。 * * @param arr 待排序的整型数组 * @param n 数组元素个数 */ void selectionSort(int arr[], int n); } // namespace sort #endif // SORT_ALGORITHMS_APP_HPP