Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package QickSort;
- public class QuickSort_Methods {
- public static int Partition(int[] arr, int low, int high) {
- // слагаме първи елемент като пивот
- int pivot = arr[low];
- //индекс, който ще пази правилното място на пивот елемента
- int i = low + 1;
- for (int j = low + 1; j <= high; j++) {
- if (arr[j] < pivot) {
- /*преподреждаме масива, като всички по-малки ги
- слагаме преди пивот елемнта, а по-големите след него
- */
- int buff = arr[i];
- arr[i] = arr[j];
- arr[j] = buff;
- i++;
- }
- }
- //слагаме пивот елемента на правилното му място
- int buff = arr[low];
- arr[low] = arr[i - 1];
- arr[i - 1] = buff;
- //връщаме индекса на пивот елемента
- return i - 1;
- }
- public static void QuickSort(int[] arr, int low, int high) {
- if (low < high) { // дъно на рекурсията
- int pivotIndex = Partition(arr, low, high);
- //сортираме лявата част на масива (елементите преди пивот)
- QuickSort(arr, low, pivotIndex - 1);
- //сортираме дясната част на масива (елементите след пивот)
- QuickSort(arr, pivotIndex + 1, high);
- }
- }
- }
RAW Paste Data