参加多次笔试,居然有几次都考到了冒泡算法,一次是c#版的填空,一次是javascript版的全部写出。
虽然每次都凭着我对冒泡法的理解给弄出来的,但是多多少少与标准模式有点差别,在网上搜了一下关于c#版的冒泡算法,居然也没有一个象样的,自己对照算法模式认真写了一个c#版的,已经测试成功。
同时附上【冒泡排序动画演示】
public void bubblesort(int[] r)
{
int i,j,temp;
//交换标志
bool exchange;
//最多做r.length-1趟排序
for(i=0; i<r.length; i++)
{
//本趟排序开始前,交换标志应为假
exchange=false;
for(j=r.length-2; j>=i; j–)
{
//交换条件
if(r[j+1]<r[j])
{
temp=r[j+1];
r[j+1]=r[j];
r[j]=temp;
//发生了交换,故将交换标志置为真
exchange=true;
}
}
//本趟排序未发生交换,提前终止算法
if(!exchange)
{
break;
}
}
}