当前位置: 首页 > 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-i; j++) // 内循环目的是为了要进行比较 并且交换位置
{ // j < list.Count-1-i :之前已经找出最值,下轮没必要和上轮最值进行比较,
if (list[j]>list[j+1]) // 比较相邻位置交换位置 如果前面的大 交换位置
{
int temp = list[j];// 定义一个临时值 存储其中一个值
list[j] = list[j+1];// 把后面的值赋值给前面元素
list[j+1] =temp;// 把temp赋值给数组后面的元素
}
}
}
foreach (var item in list)
{
Console.WriteLine(item+"----");
}


//选择排序:

每一轮找出最值的索引值,根据索引值再进行交换位置,所以交换的次数比冒泡排序的次数少,找出最值把最值放在已经排序的末尾

ArrayList list = new ArrayList() { 100,2,900,100,10,89,88};

for (int i = 0; i < list.Count - 1; i++)
{
int minIndex = i;// 每一轮循环的 把i当成最小值的索引值, 0 1 2 3.4 5..
for (int j = i+1; j < list.Count; j++)
{
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的符号进行拼接成一个字符串

类 对象 方法 复习以及默认修饰符

//类: 具有相同属性和方法的集合,类就是数据的模版,不包含实际的数据 例如人类、电脑类 狗类 、猫类... //对象:类的实例化,对象才有实际的数据,如:一个人、一只鸟、一只猫、一只金毛、玩家A、玩家B、哥布林、牛头怪 // 类成员:一个类中包含需要的信息(属性)和行为(方法),这些信息我们统称为类成员。类成员用于记录这个类的信息,类成员包含(属性,字段 、方法) // 如:人类应该拥有名字、性别、年龄等属性,应该拥有吃、喝、拉、撒、睡等方法 // 类和对象是面向对象编程语言的一大核心 //2 创建对象语法:类名 对象名 = new 类名(); People zhangsan = new People(); //zhangsan.age 因为age是私有的 不能在外部访问 zhangsan.Name = "李四"; //3 非static的方法使用对象.方法名去调用 zhangsan.Eat(); //4 调用drink方法 People p1 = new People(); p1.Name = "张三"; p1.Drink(); People p2 = new People(); p2.Name = "李四"; p2.Drink(); Console.ReadKey(); } } //修饰符:就是类和属性、字段、方法使用的范围、 //一般类默认修饰符internal , //字段的默认修饰符是private 主要是保证数据的安全性, //属性一般定义public 主要是外部进行访问, // 方法一般定义成public //public:允许类、属性、字段、方法在类的外部进行访问, // private 只能在本类里面访问, //protected 不能在外部访问属性或者字段 //internal :当前项目可以引用该类(后续演示) // 1 定义类语法: 修饰符 class 类名{} public class People { private int age; //字段名一般是小写, 默认是私有的 protected int id;// 受保护的字段 public string Name { get; set; }// 属性 一般定义public 名称是大驼峰命名法则 //定义一个方法 无返回值的方法 public void Eat() { Console.WriteLine("吃炸鸡"); } //定义一个方法, public void Drink() { Console.WriteLine(this.Name+"喝可乐"); //在自己类访问可以省去this ,this代表目前创建的对象 }
http://www.jsqmd.com/news/95412/

相关文章:

  • 泉盛UV-K5/K6对讲机LOSEHU固件:从硬件限制到无限可能的蜕变之旅
  • 35、嵌入式Linux网络服务搭建指南(上)
  • BBDown命令行视频下载工具:从入门到精通
  • Kafka Exporter终极部署指南:5分钟实现专业级Kafka监控
  • 大模型微调实战:使用Qwen3-32B进行领域适配
  • EasyAdmin8:基于ThinkPHP 8.0的完整后台管理系统终极指南
  • Vue3后台管理系统终极指南:开箱即用的Element Plus管理模板
  • 第56天(简单题中等题 数据结构)
  • 如何彻底解决OBS-NDI插件运行时缺失问题:完整修复方案
  • 2025东北餐饮品牌营销公司TOP5评测!餐饮营销优质咨询服务榜单公布 - 全局中转站
  • 2025 东北餐饮全案公司怎么选? 餐饮全案咨询服务TOP5 评测! - 全局中转站
  • Transformers Tokenizer处理Qwen3-VL-30B输入编码
  • 2025 最新东北餐饮运营公司TOP5 评测!行业优质咨询服务榜单发布,赋能餐饮品牌业绩倍增新生态 - 全局中转站
  • PYPOWER完全指南:Python电力系统分析的终极工具
  • 抖音直播回放下载终极指南:3步永久保存精彩内容
  • 微信小程序表格组件实战:从零构建高效数据展示界面
  • HuggingFace Token申请流程及Qwen-Image访问权限获取
  • 【雷达定位】基于多目标粒子群优化算法的分布式雷达网络中多源定位的位置与定向调度附Matlab代码
  • 2025最新东北餐饮咨询公司TOP5评测!优质咨询服务榜单发布 - 全局中转站
  • 冠豪猪优化算法改进投影寻踪的排水权初始配置研究附Matlab代码
  • 从零开始写算法——链表篇4:删除链表的倒数第 N 个结点 + 两两交换链表中的节点
  • QQ音乐数据获取Python工具完整使用指南
  • 2026软件测试面试题(持续更新)
  • Visual Studio中的字典
  • 滚动轴承性能退化表征/剩余使用寿命(相关性、单调性和鲁棒性)附Matlab代码
  • Visual Studio中的冒泡排序和选择排序
  • Python林业资源开发管理系统设计与实现1_2595688s--pycharm Vue django flask项目源码
  • 百度网盘提取码智能助手:如何一键获取分享码的完整指南
  • 终极指南:MouseClick自动连点器如何让工作效率翻倍
  • 基于OpenSpec标准优化的GPT-OSS-20B模型架构剖析