主题:[原创]冒泡排序的C#算法
冒泡排序是一种非常简单的排序方法,设待排序的文件为(R1,R2...Rn),其对应关健字为(K1,K2...Kn).其基本思想是:从k1开始,依次比较两个相邻的关健字ki与k(i+1)大小,若ki>k(i+1)则交换Ri和R(i+1)的位置;否则,不进行交换.经过第一次交换后,关健字最大的记录排在最后n的位置上.第二次排序后,前n-1条记录中关健字最大的记录排到n-1的位置上,继续下去,直到不需要再交换为止.在最好的情况下,只需要一遍排序;最坏的情况,需要n-1次比较和交换.
下面是用C#写的算法;
using System;
class sort
{
static void Main(string[] args)
{
int[] ii={1,6,3,2,4,85,324,234,434,23,32,43,53,64,67};
sort ss=new sort();
ss.BubbleSort(ii);
for(int k=0;k<ii.Length;++k)
{
Console.WriteLine(ii[k]);
}
}
public void BubbleSort(int[] R)
{
int i,j,min;
//交换标志
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])
{
min=R[j+1];
R[j+1]=R[j];
R[j]=min;
//发生了交换,故将交换标志置为真
exchange=true;
}
}
//本趟排序未发生交换,提前终止算法
if(!exchange)
{
break;
}
}
}
}
下面是用C#写的算法;
using System;
class sort
{
static void Main(string[] args)
{
int[] ii={1,6,3,2,4,85,324,234,434,23,32,43,53,64,67};
sort ss=new sort();
ss.BubbleSort(ii);
for(int k=0;k<ii.Length;++k)
{
Console.WriteLine(ii[k]);
}
}
public void BubbleSort(int[] R)
{
int i,j,min;
//交换标志
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])
{
min=R[j+1];
R[j+1]=R[j];
R[j]=min;
//发生了交换,故将交换标志置为真
exchange=true;
}
}
//本趟排序未发生交换,提前终止算法
if(!exchange)
{
break;
}
}
}
}