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

【算法】选择排序

新建中间商 → 依次比较 → 找出极值 → 放入目标位置 Length-1-轮数。比较n轮

算法解析

数据:3、7、1、5、4、2、6

  1. 一般中间商盛放索引值为0的数,然后对后续数依次比较。→ 中间商为0。主义中间商存储的是索引
  2. 中间商找到比自己大的值后,改变索引值。→ 7>3 ,所以中间商改为1
  3. 当一轮比较结束,即没有再比中间商再大的值后,中间商与当前数交换索引。此时:数字6的索引值改为1,7的索引值改为6
代码实现 
int[] arr = new int[] { 3,7,1,5,4,2,6 };
for (int m = 0; m < arr.Length; m++){//第一步 声明一个中间商 来记录索引//每一轮开始 默认第一个都是极值int index = 0;//第二步//依次比较// -m的目的 是排除上一轮 已经放好位置的数for (int n = 1; n <arr.Length - m; n++){//第三步//找出极值(最大值)if (arr[index] < arr[n]){index = n;}}//第四步 放入目标位置//Length - 1 - 轮数//如果当前极值所在位置 就是目标位置 那就没必要交换了if (index != arr.Length - 1 - m){int temp = arr[index];arr[index] = arr[arr.Length - 1 - m];arr[arr.Length - 1 - m] = temp;}
}for (int i = 0; i<arr.Length; i++){Console.Write(arr[i] + " ");
}

http://www.mrgr.cn/news/64922.html

相关文章:

  • oracle-函数-NULLIF (expr1, expr2)的妙用
  • 5G时代已来:我们该如何迎接超高速网络?
  • MongoDB简介
  • 不同的科技查新机构之间有什么区别?
  • 创维E900-S_华为EC6108V9_v9u_海思hi3798mv100华为系统优盘刷机固件包
  • 程序员日志之DNF手游1023版本活动补充
  • 基于STM32的农业监测与管理系统设计思路介绍(代码示例)
  • 程序员的减压秘籍:高效与健康的平衡艺术
  • Docker篇(registry私服)
  • C++ 优先算法 —— 查找总价格为目标值的两个商品(双指针)
  • 代码随想录day15| 110.平衡二叉树 、 257. 二叉树的所有路径 、 404.左叶子之和、 222.完全二叉树的节点个数
  • dockerfile/docker-compose构建镜像上下文目录编写要点
  • 进程间通信小练习
  • 电子电气架构 --- Trace 32(劳特巴赫)多核系统的调试
  • 第1篇 引言
  • vscode ssh+clion+idea等本周小结-2024.11.3
  • 阿里巴巴Seata分布式事务解决方案
  • ubuntu20安装opencv3.2记录
  • 【linux指令】----如何创建一个子进程
  • 智能指针的原理和使用
  • 【论文复现】神经网络的公式推导与代码实现
  • 【react如何在chrome浏览器里面调试?】
  • DAY75WEB 攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类
  • 自由学习记录(18)
  • gdal连接pg(java案例)
  • 图神经网络在复杂系统中的应用