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

冒泡排序与选择排序详解

《冒泡排序和选择排序》

冒泡排序:
冒泡排序:两两相比,如果前面大于后面的值交换位置
外循环要经过多少轮比较 一轮找出一个最值
内循环比较多少次 例如5个数比较4次即可 下一轮的时候 不用和上传最值进行比较,所以写内循环次数可以 这样写list.Count-1-i
List<int> list = new List<int>() { 1,99,2,8,11,20,16,89};
for (int i = 0; i < list.Count-1; i++) //为啥减- ,例如数组的个数为5的话,只需要找出4个最值即可
{
for (int j = 0; j < list.Count - 1; j++) //内循环目的是为了要进行比较,并且交换位置
// j<list.Count-1-i:之前已经找出最值,下轮没必要和上轮最值进行比较

{
if (list[i] == list[j + 1])//比较相邻位置交换位置 如果前面的大 交换位置
{
int temp=list[i]; //定义一个临时值 存储其中一个值
list[j]=list[j+1];//把后面的值赋给前面元素
list[j+1]=temp;//把temp赋值给数组后面的元素
}
}
}
foreach (var item in list)
{
Console.WriteLine(item+"------");
}

选择排序

ArrayList list = new ArrayList() {1,2,9,7,10,89,88 };
选择排序:每一轮找出最值的索引值,根据索引值再进行交换位置,所以交换的次数比冒泡排序的次数少,找出最值 把最值放在已经排序的末尾
for (int i = 0; i < list.Count-1; i++)
{
int minIndex = i;//每一轮循环的,把i当成最小值的索引值
for (int j =i+1; j<list.Count;j++)//list[i]
{
if (Convert.ToInt16( list[j]) < (Convert.ToInt16(list[minIndex])) )//取出最小值:list[minIndex],如果其中的一个元素比最小值还小,这时候list[j]最小值,记录j的索引值
{
minIndex = j;
}
}
//在内循环外部交换位置
if (i!=minIndex)//如果找到最小的和初始化的赋值的最小的不一样进行交换
{
list[minIndex]和list[i]进行交换位置
int temp = Convert.ToInt16(list[i]);
list[i] = list[minIndex];//最小值赋值给当前遍历的元素,已经排序的末尾
list[minIndex] = temp;
}

}
Console.WriteLine(string.Join(",",list.ToArray()));//join()把参数2的数组用参数1的符号进行拼接成一个字符串

http://www.cnnetsun.cn/news/69902.html

相关文章:

  • [CISCN2019 华东南赛区]Web4
  • AI编程革命!Claude Skills大揭秘:小白也能快速上手的Agent开发神器,大模型开发者必看!
  • 内点法求最优潮流附matlab代码
  • 三相PWM整流器有限集模型预测电流控制附Simulink仿真模型
  • 光伏四可“可观”功能:光伏电站全景数字化的底层支撑技术
  • 如何用FLUX.1-dev镜像在本地部署下一代AI绘画模型?
  • 基于 Comsol 移动网格方法的激光熔池流动数值模拟
  • BLDC无刷直流电机Matlab仿真:转速电流双闭环控制及有感无感换相方式研究
  • [光学原理与应用-491]:水冷机、零气模块CDA、功率计等影响266皮秒紫外激光器的种子源1064nm功率稳定性结果的主要因素有哪些?
  • 昆仑通态MCGS与欧姆龙E5CC温控器通讯实战:PID模式及输出启停控制
  • 通达信〖逆势突破强牛〗指标公式 逆市环境中率先突破前期重要压力位 较强内在上涨动力
  • 基于扰动观测器的永磁同步电机(PMSM)模型预测控制(MPC)仿真探索
  • AEB联合仿真算法设计:Carsim2019.0+Matlab/Simulink2021a实现...
  • Java毕设选题推荐:基于springboot个人博客系统的设计与实现基于SpringBoot+Vue个人博客系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot停车场车位预约系统基于Java springboot停车场管理系统停车位预约【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot的无人化、线上化、数据化海洋馆预约系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Ascend C高级API应用:InitGlobalMemory与Pad操作的底层原理
  • Java毕设选题推荐:基于Java Web的新能源汽车信息咨询服务基于SpringBoot+Vue的新能源汽车信息咨询服务的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:OPA 集成指南:从原理到实践
  • Object.defineProperty和Proxy实现拦截的区别
  • 若依物联网
  • PSEN1抗体:如何揭示阿尔茨海默病致病机制与治疗新靶点?
  • Docker Engine 升级指南:保障容器安全的关键步骤
  • 基于zigbee灯光控制照明及色温调节系统的设计与实现(有完整资料)
  • 7、Python高级语法:描述器、属性与元编程实战
  • 【开题答辩全过程】以 基于java技术的校园一卡通系统的设计与实现为例,包含答辩的问题和答案
  • 11、Python 包与应用开发全解析
  • django基于智能推荐算法的全屋定制平台网站设计
  • 详谈:解释器模式(四)
  • 双Buck电路并联下的下垂控制与VDCM协同控制策略:增强直流微电网稳定性的仿真应用