1. 程式人生 > >C#——選擇排序

C#——選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5後面)。

下面來看看程式碼

    public class SelectSorter
    {
        public void Sort(int[] list)
        {
            int i, j, temp, k;

            for (i = 0; i < list.Length - 1; i++)
            {
                k = i;
                for (j = i + 1; j < list.Length; j++)
                {

                    if (list[k] > list[j])
                    {
                        k = j;
                    }
                }

                if (k != i)
                {
                    temp = list[k];
                    list[k] = list[i];
                    list[i] = temp;
                }

            }
        }
    }
    public class MainClass
    {
        public static void Main()
        {
            int[] iArray = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
            for (int i = 0; i < iArray.Length; i++)
                Console.Write("{0} ", iArray[i]);
            Console.WriteLine();
            SelectSorter ss = new SelectSorter();
            ss.Sort(iArray);
            for (int i = 0; i < iArray.Length; i++)
                Console.Write("{0} ", iArray[i]);
            Console.WriteLine();
            Console.ReadKey();
        }
    }