冒泡排序,顾名思议,就是将要排序的每个对象比喻成一个气泡,我们都知道轻气泡是不能在重气泡之下。根据此原则,我们从上往下扫描数组,只要发现有违反此原则的重气泡,就使用向下"沉"一格。如此扫描一次,我们都能让所有违反此原则的重气泡中的最重的一个"沉"到它自己应该所在的位置,重复扫描"对象长度-1"次,所有的气泡就会乖乖排到它自己的位置了
示例代码下:
public class Program
{
private static int[] sortlist = new int[] { 10, 12, 8, 3, 5, 6, 2, 1 };
static void Main(string[] args)
{
sortlist = Sort(sortlist);
for (int i = 0; i < sortlist.Length; i++)
{
Console.WriteLine(sortlist[i].ToString());
}
Console.ReadLine();
}
public static int[] Sort(int[] _sort)
{
int j=1;
int temp;
bool istrue = false; //该值用来判断是否所有的气泡都排到自己应该在的位置,如果它为true,则我们就可以直接返回数组了,以减少扫描次数
while ((j < _sort.Length) && (!istrue))
{
istrue = true;
for (int i = 0; i < _sort.Length-j; i++)
{
if (_sort[i] > _sort[i + 1])
{
istrue = false;
temp = _sort[i];
_sort[i] = _sort[i + 1];
_sort[i + 1] = temp;
}
}
j++;
}
return _sort;
}
}