Вступ до швидкого сортування на Java

Наступна стаття Швидкий сортування в Java надає контур алгоритму швидкого сортування в Java. Алгоритм швидкого сортування - один з алгоритмів сортування, який є ефективним і подібним алгоритму сортування злиття. Це один із широко використовуваних алгоритмів для цілей сортування в режимі реального часу. Найгірша часова складність цього алгоритму - O (n 2), середньочасова складність часу - O (n log n), а найвища часова складність - O (n log n).

Складність простору, якщо O (n log n), де n - розмір входу. Процес сортування включає розподіл вхідних даних, рекурсивні ітерації та маркування головного елемента для кожної рекурсії. Тип сортування в цьому алгоритмі передбачає порівняння сусідніх елементів в ітераційному порядку.

Як працює швидкий сортування на Java?

Алгоритм швидкого сортування може бути реалізований в Java шляхом формування псевдокоду з послідовністю кроків, розроблених та виконуваних ефективно.

  1. Основний принцип роботи алгоритму швидкого сортування ґрунтується на підході ділення та перемоги, а також є ефективним алгоритмом сортування.
  2. Вхідний масив розділений на підмасиви, а поділ базується на стрижневому елементі, який є центральним елементом. Підмасиви з обох боків елемента зведення є головними областями, де власне відбувається сортування.
  3. Центральний елемент зведення є базовим для поділу масиву на два розділи, де ліва половина елементів масиву менше, ніж зведений елемент, а права половина елементів масиву більша за зведений елемент.
  4. Перш ніж розглядати елемент зведення, це може бути хтось із елементів масиву. Зазвичай це вважається середнім або першим чи останнім для зручності розуміння. Елемент зведення може бути випадковим з будь-якого з елементів масиву.
  5. У нашому прикладі останній елемент масиву розглядається як зведений елемент, де розділення підмасивів починається з правого кінця масиву.
  6. Нарешті, поворотний елемент опиниться у фактичному відсортованому положенні після завершення процесу сортування, де основний процес сортування лежить у логіці розділення алгоритму сортування.
  7. Ефективність алгоритму залежить від розміру підмасивів та їх збалансованості. Чим більше підмасиви неврівноважені, тим більше часова складність призведе до найгіршої складності.
  8. Вибір елементів повороту випадковим чином призводить до кращої складності в часі, а не вибору конкретних початкових, кінцевих або середніх індексів як елементів зведення.

Приклади для швидкого сортування на Java

Алгоритм QuickSort реалізований з використанням мови програмування Java, як показано нижче, а вихідний код відображається під кодом.

  1. Код спочатку приймає вхід, використовуючи метод quickSortAlgo () з масивом, початковим індексом та кінцевим індексом, тобто довжиною масиву в якості аргументів.
  2. Після виклику методу quickSortAlgo () він перевіряє, чи не є початковий індекс, ніж кінцевий індекс, а потім викликає метод arrayPartition (), щоб отримати значення елемента зведеного.
  3. Елемент розділу містить логіку розташування менших і більших елементів навколо зведеного елемента на основі значень елементів.
  4. Після отримання індексу зведеного елемента після виконання методу розділу метод quickSortAlgo () викликається сам по собі рекурсивно, поки всі підмасиви не будуть розділені і повністю відсортовані.
  5. У логіці розділу останній елемент присвоюється як шарнірний елемент, і перший елемент порівнюється із зведеним елементом, тобто останнім, де елементи розміщуються, залежно від того, чи менші вони, чи більші.
  6. Цей процес рекурсії відбувається до тих пір, поки всі елементи масиву не будуть розподілені та відсортовані, де кінцевим результатом є комбінований відсортований масив.
  7. Елементи поміняються всередині ітерації for-петлі лише у випадку, якщо елемент менше або рівний поворотному елементу.
  8. Після завершення процесу ітерації останній елемент замінюється, тобто значення зведеного елемента переміщується в ліву частину так, щоб були зроблені нові розділи, і той самий процес повторюється у формі рекурсії, що призводить до серії операцій сортування на різних можливих розділах як формування підмасивів із заданих елементів масиву.
  9. Наведений нижче код може бути запущений на будь-якому IDE, а вихід можна перевірити, змінивши значення масиву в main () Основний метод використовується саме для отримання результату в консолі. Як частина стандартів кодування Java, основний метод можна видалити нижче, а об'єкт можна створити, а нижче - методи можна назвати, роблячи їх нестатичними.

Реалізація алгоритму швидкого сортування коду в Java

/*
* Quick Sort algorithm - Divide & Conquer approach
*/
public class QuickSortAlgorithm (
public static void main(String() args) (
int() array = ( 99, 31, 1, 3, 5, 561, 1, 342, 345, 454 );
quickSortAlgo(array, 0, array.length - 1);
for (int ar : array) (
System.out.print(ar + " ");
)
)
public static int arrayPartition(int() array, int start, int end) (
int pivot = array(end);
int i = (start - 1);
for (int ele = start; ele < end; ele++) (
if (array(ele) <= pivot) (
i++;
int swap = array(i);
array(i) = array(ele);
array(ele) = swap;
)
)
// Swapping the elements
int swap = array(i + 1);
array(i + 1) = array(end);
array(end) = swap;
return i + 1;
)
public static void quickSortAlgo(int() arrayTobeSorted, int start, int end) (
if (start < end) (
int pivot = arrayPartition(arrayTobeSorted, start, end);
quickSortAlgo(arrayTobeSorted, start, pivot - 1);
quickSortAlgo(arrayTobeSorted, pivot + 1, end);
)
)
)

Вихід:

Висновок

Алгоритм швидкого сортування є ефективним, але не дуже стабільним порівняно з іншими методами сортування. Ефективність алгоритмів швидкого сортування знижується у випадку більшої кількості повторюваних елементів, що є недоліком. Складність простору оптимізована в цьому алгоритмі швидкого сортування.

Рекомендовані статті

Це посібник із Швидкого сортування на Java. Тут ми обговорюємо, як функція швидкого сортування працює на Java разом із прикладом та реалізацією коду. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Сортування купи в Java
  2. Що таке бінарне дерево на Яві?
  3. Біт-маніпуляція на Java
  4. Огляд сортування об'єднань у JavaScript
  5. Огляд швидкого сортування в JavaScript
  6. Сортування купи в Python
  7. Топ-6 алгоритмів сортування в JavaScript