Denis_Hristov

QuickSortMethods

Jan 20th, 2021 (edited)
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1. public class QuickSortMethods {
  2.     public static void QuickSort(int [] arr, int low, int high) {
  3.         if(low < high){ // Дъно на рекурсията
  4.             int pi = partitioning(arr, low, high); // Определяме пивот елемента на всеки подмасив
  5.  
  6.             QuickSort(arr, low, pi - 1); // Сортиране на елементите преди пивота
  7.             QuickSort(arr, pi + 1, high); // Сортиране на елементите след пивота
  8.  
  9.         }
  10.     }
  11.  
  12.     private static int partitioning(int[] arr, int low, int high) {
  13.         int pi = arr[low]; // Задаваме позиция на пивота
  14.         int i = low + 1;
  15.  
  16.         for (int j = low + 1; j <= high; j++) {
  17.             if(arr[j] < pi){        //подреждаме всички по-малки елементи от пивота преди него
  18.  
  19.                 int temp = arr[j];
  20.                 arr[j] = arr[i];
  21.                 arr[i] = temp;
  22.                 i++;
  23.             }
  24.         }
  25.  
  26.         int temp = arr[low]; // слагаме пивота на правилното му място
  27.         arr[low] = arr[i-1];
  28.         arr[i-1] = temp;
  29.  
  30.         return i - 1;  // Връщаме индекса на пивота
  31.     }
  32. }
  33.  
Add Comment
Please, Sign In to add comment