博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#的几种算法(三)

Posted on 2006-07-07 10:16  Csunny  阅读(187)  评论(0)    收藏  举报
 /*参加多次笔试,居然有几次都考到了冒泡算法,一次是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
   }
 
   }
 
  }