1,冒泡排序
最慢的排序算法,基本上只是作为教科书的教学素材,没多少实用价值。还有就是好多公司用作面试题。其思想是比较相邻的两个值,大的值往右(或左)移动。
public void BubbleSort()
{
int temp = 0;
for (int outer = 0; outer < upper; outer++)
{
for (int inner = 0; inner < upper - 1; inner++)
{
if (arr[inner] > arr[inner + 1])
{
temp = arr[inner];
arr[inner] = arr[inner + 1];
arr[inner + 1] = temp;
}
}}
}
2,选择排序
有些书上说选择排序在小数量的情况小会快于插入排序,但是我从来没测到过这种情况。选择排序的思想是遍历元素,从第一个元素开始与后面元素比较,找到比其小的(或大的)数并与其交换,直到最后的一个元素。
public void SelectionSort()
{
int temp, min;
for (int outer = 0; outer < upper; outer++)
{
min = outer;
for (int inner = outer + 1; inner < upper; inner++)
{
if (arr[inner] < arr[min])
{
min = inner;
}
}
temp = arr[outer];
arr[outer] = arr[min];
arr[min] = temp;
}
}
3,插入排序
比前两种快,稳定排序算法。排序的方法是从第一个元素开始与后面的元素比较,把比其小的数拿出来,然后把前面的元素都往右移动,把小的数放到最左,直到最后一个元素。与选择排序不同的是,这里是移动,不是交换。
public void InsertionSort()
{
int inner, temp;
for (int outer = 1; outer < upper; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner--;
}
arr[inner] = temp;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?