快速排序示例 (語言:C#)

源代碼如下。 快速排序的基本思想已經體現了出來。

using System;
using System.Collections.Generic;
using System.Text;
namespace QuickSort
{
    class Program
    {
        static void Main(string[] args)
        {
            //產生隨機數
            int[] array = new int[100000];
            for (int i = 0; i < = 99999; i++)
            {
                if (i == 0)
                    array[i] = (new Random()).Next(1000);
                else
                    array[i] = (new Random(array[i - 1])).Next(1000);
            }

            QuickSort(ref array, 0, array.Length - 1);

            foreach (int i in array)
            {
                Console.Write(i.ToString() + " ");
            }

            Console.ReadLine();
        }
        static void QuickSort(ref int[] array, int start, int end)
        {
            if (start == end - 1)
                return;
            if (start >= end)
                return;

            int i = 0, j = 0, k = 0, x = start, z = array[x];
            i = start;
            j = end;

            while (i < j)
            {
                while (array[j] >= z && j > i) j--;
                if (i < j) array[i] = array[j];
                while (array[i] <= z && j > i) i++;
                if (i < j) array[j] = array[i];
            }

            array[i] = z;
            
            QuickSort(ref array, start, i - 1);
            QuickSort(ref array, i + 1, end);
        }
    }
}
当前页阅读量为: