함수
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 | private void quicksort( int [] input, int low, int high) { int pivot_loc = 0; if (low < high) pivot_loc = partition(input, low, high); quicksort(input, low, pivot_loc - 1); quicksort(input, pivot_loc + 1, high); } private int partition( int [] input, int low, int high) { int pivot = input[high]; int i = low - 1; for ( int j = low; j < high-1; j++) { if (input[j] <= pivot) { i++; swap(input, i, j); } } swap(input, i + 1, high); return i + 1; } private void swap( int [] ar, int a, int b) { temp = ar[a]; ar[a] = ar[b]; ar[b] = temp; } |
예제2
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 70 71 72 73 74 75 76 77 78 79 | 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); } } } } |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5