Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class QuickSortMethods {
- public static void QuickSort(int [] arr, int low, int high) {
- if(low < high){ // Дъно на рекурсията
- int pi = partitioning(arr, low, high); // Определяме пивот елемента на всеки подмасив
- QuickSort(arr, low, pi - 1); // Сортиране на елементите преди пивота
- QuickSort(arr, pi + 1, high); // Сортиране на елементите след пивота
- }
- }
- private static int partitioning(int[] arr, int low, int high) {
- int pi = arr[low]; // Задаваме позиция на пивота
- int i = low + 1;
- for (int j = low + 1; j <= high; j++) {
- if(arr[j] < pi){ //подреждаме всички по-малки елементи от пивота преди него
- int temp = arr[j];
- arr[j] = arr[i];
- arr[i] = temp;
- i++;
- }
- }
- int temp = arr[low]; // слагаме пивота на правилното му място
- arr[low] = arr[i-1];
- arr[i-1] = temp;
- return i - 1; // Връщаме индекса на пивота
- }
- }
Add Comment
Please, Sign In to add comment