当前位置: 首页 > news >正文

排序算法学习笔记

排序算法

冒泡排序

正序:将最大的不断交换到序列末尾

    void Bubble_sort(vector<int> &nums){int n = nums.size();bool flag = 0;for(int i = 0;i<n-1;i++){flag = 0;for(int j = 0;j<n-i-1;j++){if(nums[j]>nums[j+1]){// swap(nums[j],nums[j+1]);int t = nums[j];nums[j] = nums[j+1];nums[j+1] = t;flag= 1;}}// 优化:有序后直接,排序结束if(flag == 0) break;}}

选择排序

每一次选择最大的/最小的到最新有序序列末尾

  void select_sort(vector<int> &nums){int n = nums.size();for(int i = 0;i<n;i++){for(int j = i+1;j<n;j++){if(nums[j]>nums[i]){int t = nums[i];nums[i] = nums[j];nums[j] = t; }}}}

插入排序

将有序序列的下一个数字插入到有序数列中

void insert_sort(vector<int> &nums){for(int i = 1;i<nums.size();i++){int key = nums[i];int j = i-1;while (j>=0 && nums[j]>key){/* code */nums[j+1] = nums[j];j--;}nums[j+1] = key;}
}

快速排序

子问题:荷兰国旗问题

 void quick_sort(vector<int> &nums,int l,int r){// 定基准const int pivot = nums[l+(rand()%(r-l))];int j,k,i;
// partioni = l;j = l;k = r;while (i<k){if(nums[i]<pivot){swap(nums[i++],nums[j++]);}else if(nums[i]>pivot){swap(nums[--k],nums[i]);}else{i++;}}quick_sort(nums,l,i);quick_sort(nums,k,r);}

归并排序

两个步骤

1、左右连部分各自排序

2、左右部分合并到一起

  void merge_sort(vector<int> &nums,int l,int r){if (l>=r) return ;int mid = l+((r-l)>>1);// 分int l1 = l,r1 = mid;int l2 = mid+1,r2 = r;merge_sort(nums,l1,r1);merge_sort(nums,l2,r2);// 合vector<int> temp;int k = l;// 比较while (l1<=r1 && l2<=r2){/* code */if(nums[l1]<nums[l2]){temp.push_back(nums[l1++]);}else{temp.push_back(nums[l2++]);}}while (l1<=r1){temp.push_back(nums[l1++]);}while (l2<=r2){temp.push_back(nums[l2++]);}for(int i = l;i<=r;i++){nums[i] = temp[i-l];// temp.pop_back();}}
http://www.zskr.cn/news/27991.html

相关文章:

  • 内网应用端口使用哪个范围的比较安全
  • 2025年10月AI搜索优化推荐:主流榜单对比与避坑指南
  • 2025 年国内喷雾干燥机最新推荐排行榜:聚焦优质品牌,助力企业精准选设备造粒/工业喷雾/陶瓷喷雾/制粒/奶粉喷雾干燥机厂家推荐
  • Python环境教程(一)-环境入门之pip conda
  • SQL Server 2008 R2 升级补丁需要注意的问题
  • pg数据库表的大小
  • 20251020_QQ_Cipher
  • 基于MATLAB/Simulink的光照强度模型构建方法
  • 2025年10月geo公司推荐:主流排行榜与避坑指南
  • 2025年10月又红又痒用什么产品推荐:口碑排行五款精华评价
  • 2025年10月美白精华产品推荐榜:临床验证数据排行
  • RJ45
  • ETH和TCP/IP报文协议与网络编程
  • 2025年10月黄黑皮美白产品榜:持证淡斑五强深度评测
  • 股票操作统计分析报告 - 2025年10月23日
  • 2025年10月黄褐斑改善产品推荐榜:权威排行与效果对比
  • windows11关闭自动更新,通用解决方法
  • 2025年10月海南监理公司评测榜:五家实力排名全览
  • 深入解析:Unity避坑——继承了MonoBehaviour的对象不能通过new来创建
  • 使用vscode进行linux 服务器远程管理
  • 2025年上海装修公司联系电话推荐:精选五强口碑榜。
  • 2025年10月GEO优化推荐:高性价比解决方案市场报告
  • 2025年诺士诚公司:权威解析全过程咨询竞争力与风险
  • 2025年10月祛斑产品推荐榜:仙瑟传明酸领衔全维度对比
  • 2025年仙瑟传明酸精华液权威盘点:敏感肌多通路美白的临床级证据链
  • 2025年10月无功补偿装置厂家推荐榜:权威对比与选购指南
  • 2025年10月geo优化供应商推荐:全维度对比与可验证选择指南
  • 2025.10.23博客
  • AI代码辅助工具标准使用场景
  • 实用指南:Coze源码分析-资源库-删除数据库-后端源码-流程/核心技术/总结