Skip to content

feat(algo): 实现冒泡排序算法(基础版 / 优化版 / 模板版)#1

Draft
str2num wants to merge 4 commits into
masterfrom
cursor/bubble-sort-algorithm-b75e
Draft

feat(algo): 实现冒泡排序算法(基础版 / 优化版 / 模板版)#1
str2num wants to merge 4 commits into
masterfrom
cursor/bubble-sort-algorithm-b75e

Conversation

@str2num

@str2num str2num commented May 10, 2026

Copy link
Copy Markdown
Owner

概述

新增冒泡排序(Bubble Sort)C++ 实现,并搭建 CMake 构建脚手架。源码遵循 Google C++ Style,按用户偏好将缩进改为 4 空格;头文件与实现位于同一 src/ 目录,未拆分独立的 include/

变更内容

  • 构建
    • 新增 CMakeLists.txt(C++17,开启 -Wall -Wextra -Wpedantic,默认 Release
    • 新增 .gitignore,排除 build/ 与常见编译产物
  • 算法实现 src/
    • bubble_sort.h:声明 algo::BubbleSort(基础版)、algo::BubbleSortOptimized(提前退出优化版)以及模板版本 BubbleSort<T, Compare>(std::vector<T>*, Compare)
    • bubble_sort.cc:基础版与优化版实现
    • main.cc:演示程序,覆盖 4 种调用方式
  • 文档 docs/
    • 01_你当前使用哪个大模型.md:会话 plan、技术方案、系统变更与验证记录
    • prompt_log.md:用户输入提示词日志

技术要点

  • 基础版本:标准 O(n^2) 双层循环,相邻逆序则交换
  • 优化版本:使用 swapped 标志位,序列已有序时提前退出,最好情况 O(n)
  • 模板版本:默认 std::less<T> 升序,可传入 std::greater<T>{} 等自定义比较器
  • 接口约定:可输出参数使用指针(符合 Google 风格)

验证

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++
cmake --build build -j
./build/bubble_sort_demo

实际输出(已通过):

BubbleSort        input : [5, 1, 4, 2, 8, 0, -3, 7]
BubbleSort        output: [-3, 0, 1, 2, 4, 5, 7, 8]
BubbleSortOptim.  input : [1, 2, 3, 4, 5, 6, 9, 8]
BubbleSortOptim.  output: [1, 2, 3, 4, 5, 6, 8, 9]
BubbleSort<double> input : [3.14, 1.41, 2.71, 0.58, 1.62]
BubbleSort<double> output: [0.58, 1.41, 1.62, 2.71, 3.14]
BubbleSort<int>  desc input : [1, 2, 3, 4, 5]
BubbleSort<int>  desc output: [5, 4, 3, 2, 1]

环境备注

本环境 /usr/bin/c++ 实际链接到 clang++ 18,但仅安装了 GCC 13 的 libstdc++,clang 默认选 GCC 14 multilib 会出现 cannot find -lstdc++。配置 CMake 时需通过 -DCMAKE_CXX_COMPILER=g++ 显式指定 GCC。建议后续通过 env-setup agent 修复(安装 libstdc++-14-dev 或锁定默认编译器)。

提交历史

  1. build: 添加 .gitignore 与 CMake 顶层构建脚本
  2. feat(algo): 实现冒泡排序算法及演示程序
  3. docs: 新增会话 plan 文档与提示词日志
Open in Web Open in Cursor 

cursoragent and others added 4 commits May 10, 2026 12:56
- 新增 .gitignore,排除 build/ 与常见编译产物
- 新增 CMakeLists.txt,C++17 标准,开启 -Wall/-Wextra/-Wpedantic
- 默认 Release 构建,目标包含静态库 bubble_sort 与可执行 bubble_sort_demo

Co-authored-by: str2num <zzpeng863@163.com>
- src/bubble_sort.h: 声明 algo::BubbleSort(基础版)、
  algo::BubbleSortOptimized(提前退出优化版)以及模板版本
  BubbleSort<T, Compare>(std::vector<T>*, Compare)
- src/bubble_sort.cc: 基础版与优化版实现
- src/main.cc: 演示 4 种调用:C 数组基础版/优化版、
  std::vector<double> 默认升序、std::vector<int> 自定义降序
- 严格遵循 Google C++ Style,缩进改为 4 空格(用户规则 1)
- 头文件与实现同目录,未拆分 include/(用户规则 5)

Co-authored-by: str2num <zzpeng863@163.com>
- docs/01_你当前使用哪个大模型.md: 本次会话的 plan、技术方案、
  系统变更说明与构建/验证记录(用户规则 4、7)
- docs/prompt_log.md: 用户输入提示词日志(用户规则 6)

Co-authored-by: str2num <zzpeng863@163.com>
Co-authored-by: str2num <zzpeng863@163.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants