Вступ до сортування на Java

  • Сортування на Java - це в основному упорядкування групи елементів, що зберігаються десь у певному порядку, цей порядок може бути як висхідним, так і спадаючим. У програмі реального часу існує багато сценаріїв, де виникає необхідність сортувати елементи, оскільки це також робить пошук конкретний елемент простий, оскільки елементи можна легко отримати за допомогою індексу масивів, якщо вони сортуються. Елементи, які потрібно сортувати, можна зберігати або в масиві, або у колекції. Колекція складається з багатьох типів у наборах, схожих на Java, дереві, карті, купі, списку тощо. Хоча існують різні типи алгоритмів сортування, які використовуються для сортування елементів у масиві сортування Bubble Sort, Heap Sort, Insertion Sort, Сортування вибору, сортування об'єднань тощо
  • Програмісти використовують різні алгоритми для сортування елементів відповідно до їх конкретних вимог та складності алгоритмів. Ці алгоритми сортування реалізовані за допомогою використання різних циклів і змінних для перегляду через нього. Крім використання алгоритмів сортування для сортування елементів у масиві, Java надає вбудовану функцію сортування, яка може допомогти з тим самим, і програмісту не потрібно застрявати у великих петлях і думати про складність. Так, ви правильно почули, в Java функція sort () використовується для сортування елементів, що зберігаються або в масивах, або в колекціях, і з дуже меншою складністю o (n (logn)). Хоча реалізація методу в обох дещо відрізняється.

Синтаксис для масивів:

Arrays.sort(array_name);

Для колекцій

Collections.sort(array_name_list);

  • Тут array_name та array_name_list - це ім'я масиву чи колекції, яку потрібно сортувати.
  • Масиви - це назва класів Java.
  • Колекція є основою на Java.
  • sort () - вбудована функція сортування, що використовується в Java.

Як сортування виконується на Java?

Ось такі пункти:

  • Використовуючи алгоритми сортування, сортування також може проводитися за алгоритмами, що змінюються від неефективних до ефективних, і кожен алгоритм має свою складність у часі та просторі.
  • Іноді ці алгоритми мають дуже високу складність, тому їх неможливо використовувати в реальних сценаріях, коли є необхідність обробляти велику кількість даних.
  • Як було сказано вище, у вбудованій функції Java сортування () використовується для сортування всіх елементів масиву та колекції. Згідно з офіційним Java DOC, Array.sort використовує quicksort, який є подвійним півотом і порівняно набагато швидше, ніж односпинковий швидкий сортування.
  • Однією з найбільших переваг цього є те, що він забезпечує складність O (n (logn)). Він використовує дуже стабільну та ітераційну реалізацію об’єкта масиву Merge Sort. Java надає метод для сортування масиву у зворотному порядку відповідно до вимог програміста для сортування у порядку зростання чи зменшення. Метод Collections.reverseOrder () використовується для сортування елементів у зворотному чи низхідному порядку.
  • Java 8 також надає можливість сортувати масиви паралельно, використовуючи паралельне сортування, яке використовує багатопотокову концепцію Java і розділяє весь масив на частини та об'єднує їх після сортування.

Типи сортування на Java

Нижче згадано декілька способів, за допомогою яких можна сортувати в сортуванні на Java:

1. сортувати (ім'я масиву)

Це використовується для сортування повного масиву у порядку зростання За замовчуванням цей метод сортує елементи масиву у порядку зростання.

Код:

import java.util.Arrays;
public class SimpleSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Вихід:

2. Collection.reverseOrder ()

Цей метод на Java використовується для сортування масиву у зворотному чи низхідному порядку. Є сценарії, коли нам потрібно сортувати елементи у порядку зменшення, а Java робить це через вбудований метод.

Код:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, Collections.reverseOrder());
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Вихід:

3. сортувати (int () array_name, int findex, int lindex)

Якщо є необхідність сортувати частину масиву замість цілого масиву, Java надає можливість сортувати цей тип масиву, вказавши 3 параметри, тобто ім'я масиву, перший індекс, з якого потрібно розпочати сортування, і останній покажчик до тих пір, коли сортування потрібно зробити.

Код:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, 1, 5);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)

Вихід:

4. Arrays.parllelSort (ім'я масиву)

З Java 8 вийшов новий API паралельного сортування. В основному в паралельному сортуванні масив ділиться на 2 підмасиви, а потім основна функція Array.sort () виконується окремим потоком. Потім відсортовані масиви об'єднуються в кінці для формування повністю відсортованого масиву. Це робиться, щоб скористатися використанням багатопотокової різьби.

Код:

import java.util.Arrays;
public class ParallelSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//parallel Sort function to sort the above array
Arrays.parallelSort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Вихід:

Як і звичайний Array.sort (), Arrays.parallelSort () також надає можливість сортувати певний діапазон масиву або сортувати масив у зворотному порядку.

Синтаксис:

// to Sort a range of array by parallelsort
Arrays.parallelSort(array_name, findex, lindex);
// to sort an array in reverse order using parallelSort
Arrays.parallelSort(array_name, Collections.reverseOder());

5. Collection.sort ()

Цей метод використовується для сортування колекцій, таких як список, карта, набір тощо. Він використовує сортування злиття та надає таку ж складність, що і Array.sort (), тобто O (n (logn)).

1. Сортування списку у порядку зростання

Код:

import java.util.Arrays;
import java.util.Collections;
public class ListSort
(
public static void main(String() args)
(
//Unsorted list
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

Вихід:

2. Сортування списку масивів у порядку зменшення

Код:

import java.util.Arrays;
import java.util.Collections;
public class ListSortRev
(
public static void main(String() args)
(
//Unsorted array list of Integers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

Вихід:

3. Сортування набору

Під час сортування колекції "Set" використовуються 3 основних правила за вказаним вище способом сортування (ім'я масиву):

    1. Перетворіть набір у список.
    2. Сортируйте список за допомогою методу сортування (ім'я_постановки).
    3. Перетворіть отриманий відсортований список назад у Set.

Код:

List numList = new ArrayList(num) ;
//Sorting the list retrieved above
Collections.sort(numList);
// Converting sorted List into Set
num = new LinkedHashSet(numList);
//Printing the Resulting Set on console
System.out.println(num);
)
)

Вихід:

4. Сортуйте карту

Карта колекції на Java - це комбінація ключа і значення, тому сортування може бути здійснено обома способами або через ключ, або за значенням.

  • Сортуйте карту за ключовими словами: подивимось нижче на прикладі сортування карти за ключовими словами.

Код:

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SortHashKey
(
public static void main(String() args)
(
HashMap map = new HashMap();
map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
TreeMap treeMap = new TreeMap(map);
System.out.println(treeMap);
)
)

Вихід:

Один з найпростіших способів сортування елементів карти за клавішами - додавання неортизованих елементів карти в TreeMap. TreeMap автоматично сортує елементи у порядку зростання хешових ключів. Хоча збір.sort () також можна використовувати для того ж, він є дещо складним і його потрібно добре закодувати.

  • Сортування карти за значенням: Нижче згаданий приклад того, як можна сортувати на карті за допомогою значення.

Код:

import java.util.HashMap;
import java.util.Map;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;
public class SortHashValue
(
public static void main(String() args)
(
HashMap map = new HashMap(); map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
LinkedHashMap sorted = new LinkedHashMap(); map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.forEachOrdered(x -> sorted.put(x.getKey(), x.getValue()));

Вихід:

У наведеному вище прикладі сортування карти за значенням спочатку встановлюємо записи за допомогою методу map.entrySet (), а потім потік цих записів методом stream (), викликаємо відсортований масив методом sorted () шляхом порівняння за значенням у пари. для кожного замовленого () використовується для проходження потоку для отримання результату.

5. Порівнюваний

Порівняльний інтерфейс, і це робить класи порівнянними з його примірниками.

Для порівняння двох екземплярів одного класу потрібно здійснити Порівняльний інтерфейс, а метод сравнениеTo () потрібно переоминути. Класи, що реалізують цей інтерфейс, його перелік об'єктів сортуються автоматично за допомогою методу Collections.sort () та Arrays.sort ().

Код:

ArrayList list = new ArrayList();
// Adding the instance objects of class Employee in list
list.add(new Employee(10, "Akshay")));
list.add(new Employee(40, "Bob")));
list.add(new Employee(20, "Priyansh")));
list.add(new Employee(50, "Chandni")));
list.add(new Employee(70, "Yashi")));
Collections.sort(list);
// Printing the sorted list on Console
System.out.println(list);

Вихід:

Висновок

Вище пояснено методи сортування в Java, які використовуються в Java для декількох сценаріїв масивів та колекцій. Програміст повинен мати на увазі, як метод sort () повинен використовуватися для різних типів колекції. За допомогою Java 8 сортування також можна проводити через Lambdas для реалізації інтерфейсу Comparator, що полегшує сортування. Хоча вивчити їх небагато складно, з ними легко працювати, якщо всі основні поняття Java, особливо потокове передавання даних, масиви та колекції, зрозумілі. Хоча сортування алгоритмів є вічнозеленим і може бути легко втілено в Java-подібних інших мовах програмування, вони мають різну складність, а вбудований функціональний вид () Java полегшує справи, якщо основні поняття вивчаються напам'ять.

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

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

  1. JComboBox на Java
  2. Сортування в С
  3. Сортування купи в С
  4. Сортування бульбашок у JavaScript
  5. Що таке сортування в C ++?
  6. Вступ до сортування в PHP
  7. Сортування купи в Python
  8. Сортування вставки в JavaScript
  9. Хешмап на Java
  10. Порівняний у прикладі Java | Інтерфейс колекції на Java