sortDemo/include/app.hpp

62 lines
1.6 KiB
C++

#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