快速排序示例 (語言: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);
}
}
}
© 轉載需附帶本文連結,依 CC BY-NC-SA 4.0 釋出。