مرتب سازی سریع (Quick Sort) در سی شارپ
سلام توسعه دهندگان گرامی در این سری از آموزش برنامه نویسی سی شارپ به آموزش مرتب سازی سریع (Quick Sort) در سی شارپ و الگوریتم مرتب سازی سریع Quick Sort را نیز مورد بررسی قرار میدهیم در ادامه با ما همراه باشید تا نحوه استفاده از مرتب سازی سریع (Quick Sort) در سی شارپ را یاد گیرید.
الگوریتم مرتب سازی سریع (Quick Sort)
مرتبسازی سریع (Quick Sort) از جمله روشهای محبوب و با سرعت بالا برای مرتب کردن دادهها محسوب میشود. این روش هم مثل روش ادغام از تقسیم و حل (Divide and Conqure) برای مرتب کردن دادهها استفاده میکند. به این ترتیب که دادهها رو به دو قسمت مجزا تقسیم، و با مرتب کردن آنها کل دادهها را مرتب میکند. برای این کار یکی از دادهها (مثلاً داده اول) به عنوان محور انتخاب میشود. دادهها بر اساس محور طوری چینش میشوند که همه دادههای کوچکتر از محور در سمت چپ و کلیه دادههای بزرگتر یا مساوی محور، در سمت محور قرار میگیرند. با مرتب کردن دو قسمت به دست آمده کل دادهها مرتب میشوند. در این حالت، مثل روش ادغام نیازی به ادغام کردن دادهها نیست. چرا که قسمت سمت راست همگی از قسمت سمت چپ کوچکتر هستند و بالعکس.
در ادامه الگوریتم مرتب سازی سریع (Quick Sort) را در سی شارپ برای شما قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace sortQuick { class quickSort { private int[] array = new int[20]; private int len; public void QuickSort() { sort(0, len - 1); } public void sort(int left, int right) { int pivot, leftend, rightend; leftend = left; rightend = right; pivot = array[left]; while (left < right) { while ((array[right] >= pivot) && (left < right)) { right--; } if (left != right) { array[left] = array[right]; left++; } while ((array[left] <= pivot) && (left < right)) { left++; } if (left != right) { array[right] = array[left]; right--; } } array[left] = pivot; pivot = left; left = leftend; right = rightend; if (left < pivot) { sort(left, pivot - 1); } if (right > pivot) { sort(pivot + 1, right); } } public static void Main() { quickSort q_Sort = new quickSort(); int[] array = { 4, 3, 1, 4, 6, 7, 5, 4, 32, 5, 26, 187, 8 }; q_Sort.array = array; q_Sort.len = q_Sort.array.Length; q_Sort.QuickSort(); for (int j = 0; j < q_Sort.len; j++) { Console.WriteLine(q_Sort.array[j]); } Console.ReadKey(); } } } |
خروجی کد بالا
1 2 3 4 5 6 7 8 9 10 11 12 13 | 1 3 4 4 4 5 5 6 7 8 26 32 187 |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام شرمنده میشه برنامشو به ایمیل من بفرستین . منظور کل برنانشو که تو سی شارپ نوشتین رو .