class Program
{
private const int MAX = 10;
private static int[] memo;
static void Main(string[] args)
{
memo = new int[MAX];
for (int i = 0; i < MAX; ++i)
{
memo[i] = MAX - i;
}
memo = new int[] { 200, 3, 10, 9, 8, 7, 4, 12, 5, 2 };
quicksort(0, memo.Count() - 1);
for (int i = 0; i < MAX; ++i)
{
Console.Write(memo[i] + " ");
}
}
static void quicksort(int left, int right)
{
if (left < right)
{
int pivot = memo[left];
int i = left + 1;
int j = right;
while (i <= j)
{
while (i <= j && memo[i] < pivot)
{
++i;
}
while (i <= j && memo[j] > pivot)
{
--j;
}
if (i < j)
{
int tmp = memo[j];
memo[j] = memo[i];
memo[i] = tmp;
}
}
int tmp2 = memo[j];
memo[j] = pivot;
memo[left] = tmp2;
quicksort(left, i - 1);
quicksort(i + 1, right);
}
}
}
c# quick정렬
2014. 5. 7. 15:41