Въведение в сортирането в 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, sort () се използва за сортиране на всички елементи на масив и колекция. Според официалния Java DOC, Array.sort използва quicksort, който е двойно въртене и сравнително много по-бърз от еднопоточния Quick Sort.
  • Едно от най-големите предимства на това е, че осигурява сложност на O (n (logn)). Той използва много стабилната и итеративна реализация на масивния обект от Сливане на сорта. 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 () име на масив, 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 ()

Този метод се използва за сортиране на колекциите като списък, карта, Set и т.н. Той използва сортирането на сливане и придава същата сложност като 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. Сортиране на комплект

Има 3 основни правила, докато сортирате колекция „Set“, използвайки горния метод сортиране (име на масив):

    1. Преобразувайте Set в списъка.
    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);
)
)

изход:

Един от най-лесните начини за сортиране на елементите на Map by Keys е чрез добавяне на несортирани елементи на картата в TreeMap. TreeMap автоматично сортира елементите във възходящия ред на клавишите Hash. Въпреки че collection.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 по стойност, първо задаваме записите, използвайки метода 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. Bubble Сортиране в JavaScript
  5. Какво е сортиране в C ++?
  6. Въведение в сортирането в PHP
  7. Сортиране на купи в Python
  8. Сортиране на вмъкване в JavaScript
  9. Хешмап в Java
  10. Сравним в пример на Java | Интерфейс за колекция в Java