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

C++选择排序原理及实现

原理

假设有一个数组,目标是按升序排序,选择排序就是从下标为0的地方开始,依次往后比较,找到后面的元素中比他最小的元素,将他们两个位置进行交换,然后再遍历下一个。

实现

我这里是用x代表获取到的最小元素对应的下标,在第一层循环初始化为i,temp是用于跟踪最小元素的值,在双层循环里面获取最小元素的值和下标,如果获取的不是vec[i]元素自己,就进行交换,我是直接写出来了,展示以下交换逻辑,也可以使用vector的swap()函数直接交换,就用不上temp变量了。代码:

void selectsort(vector<T> vec) {T temp;T x;//存储找到的temp的元素下标for (auto i = 0; i < vec.size()-1; i++){temp = vec[i];x = i;for (auto j = i+1; j< vec.size();j++) {if (temp > vec[j]) { temp = vec[j];x = j;}}if (x!=i) {vec[x] = vec[i];vec[i] = temp;}}cout << "选择排序(升序排序):";for (auto i = 0; i < vec.size(); i++){cout << vec[i];if (i!=vec.size()-1) {cout << ",";}}cout << endl;
}

注:我故意只传值不修改原数组,毕竟我这个数组还要用来写其他的排序算法,懒~

http://www.dtcms.com/a/142308.html

相关文章:

  • MySQL数据库 - 锁
  • 焕活身心,解锁健康养生新方式
  • [密码学基础]GMT 0029-2014签名验签服务器技术规范深度解析
  • 基于Python的中国象棋小游戏的设计与实现
  • Datawhale AI春训营学习笔记
  • 深度解析算法之二分查找(2)
  • JMETER使用
  • 电脑端移植至手机平板:攻克难题,仙盟架构显神通——仙盟创梦IDE
  • 每日算法-250419
  • 【人工智能学习-01-01】20250419《数字图像处理》复习材料的word合并PDF,添加页码
  • React-在使用map循环数组渲染列表时须指定唯一且稳定值的key
  • 利用 i2c 快速从 Interface 生成 Class
  • 2000-2017年各省城市天然气供气总量数据
  • 【MySQL】数据库约束
  • 5.Chromium指纹浏览器开发教程之编译发布版本
  • 前沿篇|CAN XL 与 TSN 深度解读
  • 从零开始学A2A四:A2A 协议的高级应用与优化
  • Rocky8 升级 Python 3.9.20 并部署 Airflow 2.10.5
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题
  • VASP 6.4.1 Ubuntu系统编译安装手册
  • 刘鑫炜履新共工新闻社新媒体研究院院长,赋能媒体融合新征程
  • 【Linux】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息
  • 接口自动化测试(二)
  • 【零基础】基于 MATLAB + Gurobi + YALMIP 的优化建模与求解全流程指南
  • 大模型时代:AI应用的变革与挑战
  • Linux系统之----冯诺依曼结构
  • AI编程方法第五弹:测试很重要
  • 智谱AI大模型免费开放:开启AI创作新时代
  • docker镜像被覆盖了怎么办?通过sha256重新上传镜像
  • 第 7 期:DDPM 采样提速方案:从 DDPM 到 DDIM