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

选择排序 冒泡排序

选择排序

思想:

1.遍历数组,找到数组最大值,记录最大值的下标,将最大值与最后一个值进行交换

2.将剩下的数组,重新找最大值,重复第一步,直到所有的数组排好顺序

代码:

void selectSort(vector<int>v){int n = v.size();for(int i=1;i<n;i++){int max_id = 0for(int j=1;j<n-i;i++){if(v[j]>v[max_id]) max_id=j;}swap(v[max_id],v[n-i]);}
}

时间复杂度 O(n2)

空间复杂度 O(1)

稳定性 不稳定

冒泡排序

思想:

1.从左到右,相邻两个数字进行比较,如果左边的数大于右边的数,则两个数字交换位置,确定该数组最大数字在最后一位

2.重复此操作直到全部数字排序完成

3.优化:如果数组在遍历过程中未发生交换,直接结束排序

代码:

void BubbleSort(vector<int>v{int n =v.size();for(int i=1;i<n;i++){bool flag = 1;for(int j=0;j<n-i;j++){if(v[j]>v[j+1]){swap(v[j],v[j+1]);flag = 0;}}if(flag) return;}
}

时间复杂度:O(n2)

空间复杂度:O(1)

稳定性: 稳定

http://www.xdnf.cn/news/1163053.html

相关文章:

  • TPS61194PWPRQ1适用于汽车照明低 EMI、高性能 4 通道 LED 驱动器TPS61194
  • Java 二叉树
  • 【Java学习|黑马笔记|Day19】方法引用、异常(try...catch、自定义异常)及其练习
  • 洛谷 P1480 A/B Problem
  • Apache Ignite Binary Object 调优
  • Js进阶案例合集
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——1. 启航:你的第一个工业视觉应用
  • 原型设计模式
  • GaussDB alter table的用法
  • 有关Mysql数据库的总结
  • 45.sentinel自定义异常
  • QGIS、ArcMap、ArcGIS Pro中的书签功能、场景裁剪
  • Vue过度与动画效果
  • 如何用 Z.ai 生成PPT,一句话生成整套演示文档
  • 用 STM32 的 SYSTICK 定时器与端口复用重映射玩转嵌入式开发
  • 用Java 代码实现一个简单的负载均衡逻辑
  • redis 如何优雅地进行键设计?
  • 数据结构之克鲁斯卡尔算法
  • 编译支持cuda硬件加速的ffmpeg
  • Vue 3 响应式原理详细解读【一】—— Proxy 如何突破 defineProperty 的局限
  • BEVformer个人理解与解读
  • LLaMA-Factory 微调可配置的模型基本参数
  • ASP .NET Core 8高效集成Redis缓存实战
  • 相机标定(非ROS相机)
  • Linux的相关指令
  • 中文分词模拟器 - 华为OD统一考试(Java 题解)
  • vxe-table 通过配置 ajax 方式自动请求数据,适用于简单场景的列表
  • 《RISC-V 导论:设计与实践》开源课件(附下载链接)
  • 【web自动化】-5- fixture集中管理和项目重构
  • MTSC2025参会感悟:大模型 + CV 重构全终端 UI 检测技术体系