最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。这个算法可实现如下。
public void vOrder()
{
ArrayList alist = new ArrayList();
alist.Add(5);
alist.Add(3);
alist.Add(7);
alist.Add(9);
alist.Add(2);
alist.Add(8);
for(int i = 0;i < alist.Count - 1;i++)
{
for(int k = 0; k < alist.Count -1 - i; k++)
{
if((int)alist[k] > (int)alist[k+1])
{
int ntemp = (int)alist[k];
alist[k] = (int)alist[k+1];
alist[k+1] = ntemp;
}
}
}
}
该算法总共进行了n(n-1)/2次比较.
详细描叙参考:
http://algorithm.diy.myrice.com/algorithm/commonalg/sort/internal_sorting/chapter2.htm