C#排序算法的实现---冒泡排序
2024-08-23 14:43:30
一、算法原理
冒泡排序算法的运作如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
二、算法分析
冒泡排序最好的时间复杂度为O(n),算法的平均时间复杂度为O(n*n)。
冒泡排序是一种稳定的排序算法。
三、算法实现
public class BubbleSort
{
public void Sort(int[] list)
{
int n = list.Length;
int j = ;
bool flag;//排序结束标志,一次比较后没有元素交换则排序结束
for (int i = ; i < n - ; i++)
{
flag = false;
//每一趟排序后最后的元素都是最大,所以下一趟比较不需要再比较最后一个元素
for (int k = ; k < n - j; k++)
{
if (list[k] > list[k + ])
{
int temp = list[k];
list[k] = list[k + ];
list[k + ] = temp;
flag = true;
}
}
if (!flag)
break;
j++;
}
}
}
最新文章
- Hadoop Shell命令大全
- Server.MapPath()
- iOS--NSTimer设置定时器的两种方法
- spring 初始化之后执行的方法
- C语言中一个替换 strcpy的极好的方法
- iOS-----类和对象,nil/Nil/NULL的区别
- Android中多表的SQLite数据库(译)
- WebApi接口传参不再困惑:传参详解
- swift 密码由6-16数字和字母组合组成
- 解决Table不继承父节点的属性的方法
- 基于SurfaceView的可拖动视频控件
- Luogu5205 【模板】多项式开根(NTT+多项式求逆)
- STM32F1-GPIO的操作
- valueof toString
- 027-Session状态提供程序
- 微信小程序实现部分双向数据绑定(为input、picker、textarea编写统一的更新数据逻辑)
- boot空间不足
- C# 泛型分组和Linq分组的异同
- 在Windows下食用Linux工作环境(WSL+cmder)
- 杂项:ORM