Bubble.cs
-------------------------------------------------------------------------------------------------------------------
using System;
namespace arithmetic
{
/// <summary>
/// BubbleSort 的摘要说明。
/// </summary>
public class BubbleSort
{
public BubbleSort()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static int Sort(int[] arr)
{
int i,j,temp,counter=0;
//交换标志
bool exchange;
//最多做arr.Length-1次排序
for(i=0;i<arr.Length-1;i++)
{
exchange=false;
counter++;
for(j=arr.Length-2;j>=i;j--)
{
if(arr[j+1]<arr[j])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
exchange=true;
}
}
//如果没有发生交换,提前终止算法
if(!exchange)
{
break;
}
}
//返回排序次数
return counter;
}
}
}
Class1.cs
----------------------------------------------------------------------------------------------------------------------
namespace arithmetic
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
//
Console.WriteLine("BubbleSort");
Console.WriteLine("==============================================");
int[] r={1,5,2,8,4,0,9,7,3,6};
int loopTime;
loopTime=BubbleSort.Sort(r);
for(int i=r.GetLowerBound(0);i<=r.GetUpperBound(0);i++)
{
Console.WriteLine("r[{0}]:{1}",i,r[i]);
}
Console.WriteLine("经过{0}次排序",loopTime);
Console.Read();
}
}
}