当前位置: 首页 > 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.jsqmd.com/news/20013/

相关文章:

  • 内网应用端口使用哪个范围的比较安全
  • 2025年10月AI搜索优化推荐:市场报告与全维度选择指南
  • Vue3+ts+pinia实现活跃的tab栏
  • 2025年10月AI搜索优化推荐:主流榜单对比与避坑指南
  • 2025 年国内喷雾干燥机最新推荐排行榜:聚焦优质品牌,助力企业精准选设备造粒/工业喷雾/陶瓷喷雾/制粒/奶粉喷雾干燥机厂家推荐
  • Python环境教程(一)-环境入门之pip conda
  • Datawhale 春训营新能源预测(数据处理)
  • 权威调研榜单:实验用超细粉碎机实力厂家TOP7榜单好评深度解析
  • AI股票预测分析报告 - 2025年10月23日
  • 智能化时代下,企业DevOps平台的选型突围:谁在真正驱动业务价值?
  • 2025年10月deepseek排名优化推荐:主流机构对比排行榜
  • 异常值检测算法学习
  • 取方案
  • Maven的使用(Leo)
  • 数字化实战:医疗器械行业售后工程师如何借CRM实现高效运维​
  • 2025年10月geo优化服务商推荐:知名机构评测列表
  • pg数据库表的大小
  • 20251020_QQ_Cipher
  • 高压差分探头PKDV508E使用常见问题与解决方案
  • 好拼|免费在线拼图工具上架谷歌商店啦 - ops
  • 基于MATLAB/Simulink的光照强度模型构建方法
  • 2025年10月geo公司推荐:主流排行榜与避坑指南
  • 地中海、双肩包、格子衫?从业9年程序员聊聊真实的程序员是什么样子
  • 2025年10月又红又痒用什么产品推荐:口碑排行五款精华评价
  • 2025年10月美白精华产品推荐榜:临床验证数据排行
  • 卫星遥感技术在河湖监管中的应用
  • RJ45
  • ETH和TCP/IP报文协议与网络编程
  • 2025年10月黄黑皮美白产品榜:持证淡斑五强深度评测
  • 股票操作统计分析报告 - 2025年10月23日