zoukankan      html  css  js  c++  java
  • 排序算法之鸡尾酒排序

    鸡尾酒排序算法也称双向冒泡排序、搅拌排序或涟漪排序。

        class Program
        {
            static void Main(string[] args)
            {
                #region 鸡尾酒排序算法
                int[] array = new int[] { 3, 6, 9, 52, 41, 25, 78, 5, 45, 48, 74, 45, 51, 524, 74, 2 };//定义一个一维数组并赋值
                Sort(array);//排序
                for (int i = 0; i < array.Length; i++)//循环遍历排序后的数组
                {
                    Console.Write(array[i]+"  ");//逐个输出数组元素
                }
                #endregion
                Console.ReadKey();
            }
            static int[] intArray;
            #region 两个数位置变换
            /// <summary>
            /// 
            /// </summary>
            /// <param name="left"></param>
            /// <param name="right"></param>
            static void Change(ref int left, ref int right)
            {
                int temp;//临时变量
                temp = left;//记录第一个数的值
                left = right;//使第一个数的值等于第二个数的值
                right = temp;//使第二个数的值等于临时变量的值
            }
            #endregion
            #region 鸡尾酒排序算法
            static void CockSorts(int[] intArray)
            {
                int low, up, index;//定义变量
                low = 0;//数组的开始索引
                up = intArray.Length - 1;//数组的结束索引
                index = low;//临时变量
                while (up > low)//判断数组中是否存在多个元素
                {
                    for (int i = low; i < up; i++)//从上向下扫描
                    {
                        if (intArray[i] > 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;
                }
            }
            #endregion
            #region 对指定数组使用鸡尾酒算法进行排序
            static void Sort(int[] intArr)
            {
                intArray = intArr;//未数组赋值
                CockSorts(intArray);//使用鸡尾酒算法对数组进行排序
            }
            #endregion
        }
  • 相关阅读:
    [PY3]——内置数据结构(2)——元组及其常用操作
    [PY3]——内置数据结构(1)——列表及其常用操作
    [PY3]——基本语法
    session和cookie介绍以及session简单应用
    php中获取当前系统时间、时间戳
    ajax之XML简介
    Ajax练习题
    ajax语法
    JQUERY选中问题
    JSON
  • 原文地址:https://www.cnblogs.com/libo-2249/p/15760896.html
Copyright © 2011-2022 走看看