| /*******************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();
 }
 |