c#菜B学习之路3

发布时间:2019-07-04 10:08:02编辑:auto阅读(1671)

    刚刚练习了冒泡算法,趁热打铁,练习鸡尾酒算法。Cocktail!

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace 鸡尾酒排序算法
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] arr1 = new int[] { 2, 5, 3, 18, 23, 12, 13, 16, 11 };
                Cocktail(arr1);
                for (int i = 0; i < arr1.Length; i++)
                {
                    Console.Write(arr1[i] + " ");
                }
                Console.Read();
            }
            static void change(ref int left, ref int right)//change方法来作值交换
            {
                int temp;
                temp = left;
                left = right;
                right = temp;
            }
            static void Cocktail(int[] arr)//鸡尾酒排序
            {
                int up = arr.Length - 1;//设置排序上限
                int low = 0;//设置排序下限
                while (low < up)
                {
                    for (int i = low; i < up; i++)
                    {
                        if (arr[i] <= arr[i + 1])
                        {
                            continue;
                        }
                        else
                        {
                            change(ref arr[i], ref arr[i + 1]);
                        }
                    }
                    up--;
                    for (int j = up; j > low; j--)
                    {
                        if (arr[j] >= arr[j - 1])
                        {
                            continue;
                        }
                        else
                        {
                            change(ref arr[j], ref arr[j - 1]);
                        }
                        low++;
                    }
                }
            }
        }
    }


关键字