الگوریتم مرتب سازی سریع (Quick Sort) در سی شارپ

یکی از انواع مرتب سازی ، مرتب سازی سریع یا QuickSort می باشد . در سورس کد زیر شما را با این نوع مرتب سازی آشنا می کنیم .

تصویر زیر نشان دهنده روش کار الگوریتم مرتب سازی در سی شارپ می باشد .

Sorting_quicksort_csharp

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Quicksort
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an unsorted array of string elements
            string[] unsorted = { "z", "e", "x", "c", "m", "q", "a" };

            // Print the unsorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            // Sort the array
            Quicksort(unsorted, 0, unsorted.Length - 1);

            // Print the sorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            Console.ReadLine();
        }

        public static void Quicksort(IComparable[] elements, int left, int right)
        {
            int i = left, j = right;
            IComparable pivot = elements[(left + right) / 2];

            while (i <= j)
            {
                while (elements[i].CompareTo(pivot) < 0) 
                { 
                    i++; 
                } 
                while (elements[j].CompareTo(pivot) > 0)
                {
                    j--;
                }

                if (i <= j)
                {
                    // Swap
                    IComparable tmp = elements[i];
                    elements[i] = elements[j];
                    elements[j] = tmp;

                    i++;
                    j--;
                }
            }

            // Recursive calls
            if (left < j)
            {
                Quicksort(elements, left, j);
            }

            if (i < right)
            {
                Quicksort(elements, i, right);
            }
        }

    }
}
z e x c m q a
a c e m q x z

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. عطیه پاسخ دادن

    سلام
    اگه بخوام کتاب هایی که پایگاهم ثبت شدن وقتی توی جدول نمایش داده میشن مرتب باشن باید چطوری انجام بدم؟
    مرسی

  2. امیدوار پاسخ دادن

    تشکر.