news 2026/5/3 19:34:09

冒泡排序与选择排序详解

作者头像

张小明

前端开发工程师

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; 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的符号进行拼接成一个字符串

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:54:58

HarmonyOS6新特性

鸿蒙 6 新特性 鸿蒙 6&#xff08;HarmonyOS 6 / HarmonyOS NEXT 相关版本&#xff09;在语言、UI 框架、多设备协同、AI、图形、多媒体以及工具链等方面都进行了大幅升级&#xff0c; 下面按特性维度逐一梳理&#xff0c;方便你直接作为设计 / 开发文档使用。 一、ArkTS 原生应…

作者头像 李华
网站建设 2026/5/3 12:14:18

volatile关键字的作用

1.禁止编译器对变量进行优化当一个变量在短时间内被多次访问时&#xff0c;编译器可能会将该变量的值缓存到寄存器中&#xff0c;后续对该变量的访问直接从寄存器中获取&#xff0c;而不再从内存中读取。但如果该变量的值可能会被意外改变&#xff08;如被硬件或其他线程修改&a…

作者头像 李华
网站建设 2026/4/30 20:57:23

Cursor 2.2更新:可视化编辑器+Debug Mode,写前端的有福了

加我进AI讨论学习群&#xff0c;公众号右下角“联系方式”文末有老金的 开源知识库地址全免费这两天Cursor连续放大招12月10日&#xff0c;Cursor发布了2.2版本&#xff0c;主打Debug Mode。12月11日&#xff0c;又发了个重磅更新&#xff1a;Browser可视化编辑器。说实话&…

作者头像 李华
网站建设 2026/5/1 3:45:29

别让AI Agent把你送进局子!开发者必看的法律合规避坑指南

随着企业降本增效需求的不断增强&#xff0c;以及供给端 AI 能力成熟度不断提高&#xff0c; 2026 年注定将成为企业部署及应用AI的爆发之年。其中&#xff0c;具备自主决策与跨系统协同能力的 AI Agent&#xff0c;正加速进入企业实际业务场景&#xff0c;将在生产力层面推动企…

作者头像 李华
网站建设 2026/5/1 3:44:54

程序综合实践第十二周-二叉树

1、二叉树求高度#include<bits/stdc.h> using namespace std; int n; const int N105; struct node{int left;int right;int data; }a[N]; int dfs(int r){if(r0)return 0;int h1dfs(a[r].left);int h2dfs(a[r].right);return max(h1,h2)1; } int main(){cin>>n;fo…

作者头像 李华