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);

            }

        }

    }

+ Recent posts