Увод у сортирање на Јави

  • Разврставање у Јави у основи је сређивање групе елемената смештених негде по одређеном редоследу, овај редослед може бити и узлазни или силазни. Долази много сценарија у програмирању у реалном времену где постоји потреба за сортирањем елемената јер то тражи и тражење одређени елемент је лак, јер се елементи лако проналазе индексом низова, ако су сортирани. Елементи које је потребно сортирати могу се похранити у низ или у збирку. Колекција је више типова у сетовима сличним Јава-у, дрвећу, мапи, хеап-у, листи и сл. Иако постоје различите врсте алгоритма за сортирање који се користе за сортирање елемената у Буббле Сорт, Хеап Сорт, Инсертион Сорт, Избор сортирања, Спајање сортирања итд.
  • Програмери користе различите алгоритме да би сортирали елементе према њиховим специфичним захтевима и сложености алгоритама. Ови алгоритми сортирања се реализују употребом различитих петљи и променљивих да би се кроз њу понављало. Осим што користи алгоритме за сортирање елемената у низу, Јава пружа уграђену функцију сортирања која може помоћи код исте и програмеру не треба бити заглављен у великим петљама и размишљати о сложености. Да, добро сте чули, у Јави се функција сорт () користи за сортирање елемената похрањених у низовима или збиркама и то са врло мањом сложеношћу о (н (логн)). Иако је примена ове методе у оба мало другачија.

Синтакса за низове:

Arrays.sort(array_name);

За колекције

Collections.sort(array_name_list);

  • Овде је име матрице и име арраи_наме име матрице или колекције коју треба сортирати.
  • Низови су назив Јава класа.
  • Колекција је оквир у Јави.
  • сорт () је уграђена функција сортирања која се користи у Јави.

Како се сортирање изводи на Јави?

Следе тачке:

  • Коришћењем алгоритама за сортирање, сортирање се такође може обављати са алгоритмима који варирају од неефикасних до ефикасних и сваки алгоритам има своју сложеност времена и простора.
  • Понекад ови алгоритми имају велику сложеност па се не могу користити у стварним сценаријима где је потребно обрадити велике количине података.
  • Као што је горе споменуто, у Јава уграђеној функцији, сорт () се користи за сортирање свих елемената Арраи и колекције. Према службеном Јава ДОЦ-у, Арраи.сорт користи куицксорт који је двоструко врти и релативно је бржи од брзог сортирања са једним окретом.
  • Једна од највећих предности овога је што пружа сложеност О (н (логн)). Користи врло стабилну и итеративну имплементацију низа објекта Мерге Сорт. Јава пружа метод да се низ сортира и обрнутим редоследом, у складу са захтевима програмера, да их сортира у узлазном или силазном редоследу. Метода Цоллецтионс.реверсеОрдер () користи се за сортирање елемената обрнутим или силазним редоследом.
  • Јава 8 пружа и могућност сортирања низова паралелно кориштењем Параллел сортирања које користи концепт вишеструког навоја Јава и дијели читав низ на дијелове и спаја их након сортирања.

Врсте сортирања на Јави

Испод је наведено неколико начина на које се сортирање може извршити у Сортирању на Јави:

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. Цоллецтион.реверсеОрдер ()

Ова метода у Јави користи се за сортирање низова обрнутим или силазним редоследом. Постоје сценарији у којима морамо елементе сортирати силазним редоследом, а Јава то чини помоћу уграђене методе.

Шифра:

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. сорт (инт () име арраи, инт финдек, инт линдек)

Ако постоји потреба да се сортира неки део матрице уместо целог низа, Јава пружа могућност сортирања ове врсте поља одређивањем 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. Арраис.парллелСорт (име матрице)

Из Јава 8 издан је нови АПИ паралелне врсте. У основи паралелног сортирања, низ се дијели на 2 подреда, а затим основну функцију Арраи.сорт () обавља засебна нит. Сортирани низови се затим спајају на крају да би се формирао потпуно сортирани низ. То се ради како би се искористила употреба вишеслојних навоја.

Шифра:

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));
)
)

Излаз:

Попут уобичајеног Арраи.сорт (), Арраис.параллелСорт () такође пружа могућност сортирања одређеног распона матрице или сортирања матрице у обрнутом редослиједу.

Синтакса:

// 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. Цоллецтион.сорт ()

Ова метода се користи за сортирање колекција попут листе, мапе, скупа, итд. Користи сортирање спајања и даје исту сложеност као Арраи.сорт (), тј. О (н (логн)).

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 основна правила док сортирате колекцију 'Сет' користећи горњу методу сортирања (име арраи_наме):

    1. Претворите Сет у листу.
    2. Поредајте листу користећи сортирање метода (име матрице).
    3. Претворите добијени сортирани списак назад у Сет.

Шифра:

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. Поредај карту

Мапа колекције у Јави је комбинација кључа и вредности. Дакле, сортирање се може обавити на обе начине или путем кључа или вредности.

  • Поредај карту по кључу: Погледајмо доњи пример сортирања мапе по кључу.

Шифра:

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);
)
)

Излаз:

Један од најједноставнијих начина за сортирање елемената Мап би Кеис је додавање несортираних елемената карте у ТрееМап. ТрееМап аутоматски сортира елементе по узлазном редоследу кључева. Иако се цоллецтион.сорт () такође може користити за исто, помало је сложен и треба га добро кодирати.

  • Поредај карту према вредности: Испод је пример како се сортирање може извршити на мапи помоћу вредности.

Шифра:

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()));

Излаз:

У горњем примјеру сортирања Мап по вриједности, прво постављамо уносе користећи мап.ентриСет (), а затим струјање тих уноса методом стреам (), позивамо сортирани низ користећи сортед () методу, упоређујући по вриједности у пар. за сваки наређени () користи се за кретање током да би се добио резултат.

5. Упоредиво

Упоредив је интерфејс и чини класе упоредивим са примерцима.

Да би се упоредиле две инстанце исте класе, потребно је имплементирати упоредиви интерфејс, а методу ЦомпареТо () треба надјачати. Класе које имплементирају овај интерфејс, његова листа објеката се аутоматски сортирају методом Цоллецтионс.сорт () и Арраис.сорт ().

Шифра:

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);

Излаз:

Закључак

Објашњено су горе методе сортирања у Јави које се у Јави користе за више сценарија низова и колекција. Програмер мора имати на уму како се метода сорт () треба користити за различите типове колекција. Уз Јава 8, сортирање се може обавити и путем Ламбдас-а ради примене интерфејса Цомпаратор, што олакшава сортирање. Иако је мало тешко научити их све, са њима је лако радити ако су јасни сви основни појмови Јаве, посебно струјање података, низови и колекције. Иако су алгоритми сортирања зимзелени и могу се лако имплементирати у другим програмским језицима сличним Јави, они имају различиту сложеност и уграђену врсту функције () Јава олакшава ствари ако се основни појмови науче напамет.

Препоручени чланци

Ово је водич за сортирање на Јави. Овде смо расправљали о начину сортирања у јави и врстама сортирања у јави са различитим кодовима и излазима. Можете и да прођете кроз наше друге сродне чланке да бисте сазнали више -

  1. ЈЦомбоБок на Јави
  2. Сортирање на Ц
  3. Поредај на Ц
  4. Буббле Сорт ин ЈаваСцрипт
  5. Шта је сортирање у Ц ++?
  6. Увод у поређење у ПХП-у
  7. Хеап Сорт ин Питхон
  8. Разврставање уметања у ЈаваСцрипт
  9. Хасхмап на Јави
  10. Упоредиво у примеру Јава | Интерфејс колекције на Јави

Категорија: