目 标 用C#实现冒泡排序
性能分析
若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。
实现
1 冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面
2 代码:
public void Sort(int [] intArray)
{
int intTemp;
bool blnDo = true;//如果已经没有互换动作说明已经排好
for (int i = 1; i < intArray.Length; i++)//通过i次冒泡
{
if (blnDo)
{
break;
}
blnDo = true;
for (int j = 0; j < intArray.Length - i; j++)//排序j个元素
{
if (intArray[j] > intArray[j + 1])
{
//互换
blnDo = false;
intTemp = intArray[j];
intArray[j] = intArray[j + 1];
intArray[j + 1] = intTemp;
}
}
}
}
代码下载 冒泡排序代码