/*******************2012-08-15**************************/
/*******************In BeiJing***************************/
static void change(ref int left,ref int right)
{
int temp;//临时变量;
temp = left; //第一个值
left = right;//第二个数的值赋给第一个数
right = temp;//将第二个数的值赋给临时变量
}
static void CatchSorts(int[] intArray)//排序的数组
{
int low,up,index;
low = 0;//数组的开始索引
up=intArray.Length - 1;//数组的结束索引
while(up>low)
{
for(int i=low; i< up; i++)//从上到下扫描
{
if(intArray[i+1]>intArray[i+1]))
{
change(ref intArray[i],ref intArray[i+1]);
index = i;//记录索引
}
}
up=index;
for(int i=up;i>low;i--)//从下到上扫描
{
if(intArray[i]<intArray[i-1])
{
change(ref intArray[i], ref intArray[i-1]);
index = i;
}
}
low = index;
}
}
static void sort(int[] intArray)//定义一个需要排序的一维数组
{
intArray = intAry;
CatchSorts(intArray);//采用鸡尾酒经典算法排序
}
static void Main(string[] args)
{
int[] ary = new int[] { 12,43,1,432,76,3};//手段定义一个数组,并赋值
sort(ary);//排序
for(int i=0;i<ary.Length;i++)
{
Console.WriteLine(ary[i]+"");//逐一输出
}
Console.ReadLine();
} |