程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C# 雞尾酒排序(雙冒泡排序、攪拌排序或漣漪排序)

C# 雞尾酒排序(雙冒泡排序、攪拌排序或漣漪排序)

編輯:關於C#
 

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Sort{    class CockTailSorter    {        private static int[] myArray;        private static int arraySize;        public static int[] Sort(int[] myArray)        {            arraySize = myArray.Length;            CockTailSort(myArray);            return myArray;        }        public static void CockTailSort(int[] myArray)        {            int low, up, index, i;            low = 0;//數組起始索引            up = myArray.Length - 1;//數組索引最大值            index = low;//臨時變量 //判斷數組中是否有多個元素            while (up > low)//每一次進入while循環都會找出相應范圍內最大最小的元素並分別放到相應的位置            { //進入該for循環會將索引限定范圍內最大的元素放到最右邊                for (i = low; i < up; i++)//從上向下掃描                {                    if (myArray[i] > myArray[i + 1])                    {                        Swap(ref myArray[i], ref myArray[i + 1]);                        index = i;//記錄當前索引                    }                }                up = index;//記錄最後一個交換的位置 //進入該for循環會將索引限定范圍內最小的元素放到最左邊                for (i = up; i > low; i--)//從最後一個交換位置從下往上掃描                {                    if (myArray[i] < myArray[i - 1])                    {                        Swap(ref myArray[i], ref myArray[i - 1]);                        index = i;                    }                }                low = index;//記錄最後一個交換的位置            }        }        private static void Swap(ref int left, ref int right)        {            int temp;            temp = left;            left = right;            right = temp;        }    }}

雞尾酒排序等於是冒泡排序的輕微變形。不同的地方在於從低到高然後從高到低,而冒泡排序則僅從低到高去比較序列裡的每個元素。他可以得到比冒泡排序稍微好一點的效能,原因是冒泡排序只從一個方向進行比對(由低到高),每次循環只移動一個項目。

使用雞尾酒排序,數組中的數字本是無規律的排放,先找到最小的數字,把他放到第一位,然後找到最大的數字放到最後一位。然後再找到第二小的數字放到第二位,再找到第二大的數字放到倒數第二位。以此類推,直到完成排序。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved