news 2026/7/7 14:38:45

掌握冒泡与选择排序精髓

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
掌握冒泡与选择排序精髓

//冒泡排序:

俩两相比,如果前面大于后面的值这时候交换位置。
//外循环要经过多少轮 一轮找出一个最值
//内循环比较多少次 例如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代表目前创建的对象 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 16:53:09

5分钟搞定智慧树插件:让你的网课学习效率翻倍

你是否也遇到过这样的困扰&#xff1a;在智慧树平台学习网课时&#xff0c;需要不断手动点击下一集&#xff0c;浪费宝贵的学习时间&#xff1f;或者想要加快播放速度却找不到合适的工具&#xff1f;本文将教你如何通过智慧树刷课插件实现自动化学习&#xff0c;让网课学习变得…

作者头像 李华
网站建设 2026/7/3 9:12:58

北大学者带你拖拽3D物体,像玩拼图一样让虚拟世界动起来

这项由北京大学计算机科学学院张天山、张泽宇和唐昊团队完成的研究发表于2025年12月&#xff0c;研究成果已在arXiv平台发布&#xff0c;论文编号为2512.06424v1。有兴趣深入了解的读者可以通过该编号查询完整论文&#xff0c;或访问研究团队的开源代码和项目网站。想象一个魔法…

作者头像 李华
网站建设 2026/7/7 10:20:34

Vscode调试Python脚本运行ACE-Step:快速定位错误

使用 VSCode 调试 Python 脚本运行 ACE-Step&#xff1a;精准定位 AI 音乐生成中的问题 在 AI 创作工具日益普及的今天&#xff0c;音乐生成模型正从“能出声”迈向“可控、可调、可迭代”的工程化阶段。像 ACE-Step 这样的开源基础模型&#xff0c;虽然提供了强大的文本到音乐…

作者头像 李华
网站建设 2026/7/7 8:52:43

PyTorch JIT编译提升Stable Diffusion 3.5 FP8运行效率可行性研究

PyTorch JIT编译提升Stable Diffusion 3.5 FP8运行效率可行性研究 在当前生成式AI迅猛发展的背景下&#xff0c;文本到图像模型正从实验室走向大规模生产部署。Stable Diffusion系列凭借其开源性与高质量输出&#xff0c;已成为内容创作、广告设计和虚拟现实等领域的重要基础设…

作者头像 李华
网站建设 2026/7/7 9:53:06

QQ音乐数据获取Python工具完整使用指南

MCQTSS_QQMusic是一个专门针对QQ音乐平台的数据获取工具&#xff0c;通过逆向工程技术实现了对QQ音乐API的稳定访问。无论你是开发者、数据分析师还是音乐爱好者&#xff0c;这个工具都能帮你轻松获取各类音乐数据。 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: ht…

作者头像 李华