logo

Како сортирати низ низова у Јави

У програмирању, сортирање је важно јер ставља елементе ан низ одређеним редоследом. Широко коришћени ред је по азбучном реду или природни поредак . Сортирање се користи за каноникализацију (процес претварања података у стандардну форму) података и за стварање формата читљивог човеку. У овом одељку ћемо научити како сортирати низ стрингова у Јави Користећи кориснички дефинисану логику и Низови. врста() методом

Постоје два начина да сортирате низ стрингова у Јави:

  • Користећи Усер-Дефинед Логика
  • Помоћу Низови.сорт() Метод

Коришћење логике коју дефинише корисник

Можемо сортирати низ стрингова упоређивањем сваког елемента са осталим елементима. У следећем примеру, урадили смо исто. Користили смо две фор петље. Унутрашња (друга) фор петља избегава понављања у поређењу. Ако је услов (цоунтриес[и].цомпареТо(цоунтриес[ј])>0) тачан од 0, он врши замену и сортира низ.

програм наслеђивања у питону

СортСтрингАрраиЕкампле1.јава

 import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; int size = countries.length; //logic for sorting for(int i = 0; i<size-1; i++) { for (int j="i+1;" j0) swapping array elements string temp="countries[i];" countries[i]="countries[j];" countries[j]="temp;" } prints the sorted in ascending order system.out.println(arrays.tostring(countries)); < pre> <p> <strong>Output:</strong> </p> <pre> [ Australia, America, Denmark, France, Germany, India, Italy, Netherlands, South-Africa, Yugoslavia, Zimbabwe] </pre> <h3>Using the Arrays.sort() Method</h3> <p>In Java, <strong>Arrays</strong> is the class defined in the java.util package that provides <strong>sort()</strong> method to sort an array in ascending order. It uses <strong>Dual-Pivot Quicksort algorithm</strong> for sorting. Its complexity is <strong>O(n log(n))</strong> . It is a <strong>static</strong> method that parses an <strong>array</strong> as a parameter and does not return anything. We can invoke it directly by using the class name. It accepts an array of type int, float, double, long, char, byte.</p> <p> <strong>Syntax:</strong> </p> <pre> public static void sort(int[] a) </pre> <p>Where <strong>a</strong> is an array to be short.</p> <h4>Note: Like the Arrays class, the Collections class also provides the sort() method to sort the array. But there is a difference between them. The sort() method of the Arrays class works for primitive type while the sort() method of the Collections class works for objects Collections, such as LinkedList, ArrayList, etc.</h4> <p>We can perform sorting in the following ways:</p> <ul> <tr><td>Ascending Order</td> or <strong>Alphabetical Order</strong> or <strong>Natural Order</strong>  </tr><tr><td>Descending Order</td> or <strong>Reverse Natural Order</strong>  </tr></ul> <h3>Sort String Array in Ascending Order or Alphabetical Order</h3> <p>The <strong>ascending order</strong> arranges the elements in the lowest to highest order. It is also known as <strong>natural order</strong> or <strong>alphabetical order</strong> .</p> <p>Let&apos;s sort an array using the sort() method of the Arrays class.</p> <p> <strong>SortStringArrayExample2.java</strong> </p> <pre> import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] </pre> <h3>Sort String Array in Descending Order or Reverse Natural Order</h3> <h3>Using the reverseOrder() Method</h3> <p>Java <strong>Collections</strong> class provides the <strong>reverseOrder()</strong> method to sort the array in reverse-lexicographic order. It is a static method, so we can invoke it directly by using the class name. It does not parse any parameter. It returns a <strong>comparator</strong> that imposes the reverse of the natural ordering (ascending order).</p> <p>It means that the array sorts elements in the ascending order by using the sort() method, after that the reverseOrder() method reverses the natural ordering, and we get the sorted array in descending order.</p> <p> <strong>Syntax:</strong> </p> <pre> public static Comparator reverseOrder() </pre> <p>Suppose, a[] is an array to be sort in the descending order. We will use the reverseOrder() method in the following way:</p> <pre> Arrays.sort(a, Collections.reverseOrder()); </pre> <p>Let&apos;s sort a string array in the descending order.</p> <p> <strong>SortStringArrayExample3.java</strong> </p> <pre> import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia] </pre> <hr></size-1;>

Коришћење методе Арраис.сорт().

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

Синтакса:

 public static void sort(int[] a) 

Где а је низ да буде кратак.

Напомена: Као и класа Арраис, класа Цоллецтионс такође обезбеђује метод сорт() за сортирање низа. Али постоји разлика између њих. Метода сорт() класе Арраис ради за примитивни тип, док метода сорт() класе Цоллецтионс ради за објекте Цоллецтионс, као што су ЛинкедЛист, АрраиЛист, итд.

Можемо извршити сортирање на следеће начине:

    Примање наруџбинеили Абецедни редослед или Природни поредак Силазним редоследомили Обрнути природни поредак

Сортирајте низ низова у растућем или абецедном реду

Тхе Примање наруџбине распоређује елементе од најнижег до највишег реда. Такође је познато као природни поредак или абецедни редослед .

Хајде да сортирамо низ помоћу методе сорт() класе Арраис.

СортСтрингАрраиЕкампле2.јава

матх пов јава
 import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } 

Излаз:

 [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] 

Сортирајте низ низова у опадајућем редоследу или обрнутом природном редоследу

Коришћење методе реверсеОрдер().

Јава Збирке класа пружа Обрнути редослед() метод за сортирање низа у обрнутом лексикографском редоследу. То је статичан метод, тако да га можемо директно позвати користећи име класе. Не анализира ниједан параметар. Враћа а компаратор то намеће обрнуто од природног поретка (узлазни ред).

То значи да низ сортира елементе по растућем редоследу коришћењем методе сорт() , након тога метода реверсеОрдер() обрће природни редослед, а ми добијамо сортирани низ у опадајућем редоследу.

Синтакса:

 public static Comparator reverseOrder() 

Претпоставимо да је а[] низ који треба сортирати у опадајућем редоследу. Користићемо метод реверсеОрдер() на следећи начин:

 Arrays.sort(a, Collections.reverseOrder()); 

Хајде да сортирамо низ низова у опадајућем редоследу.

стринг а инт

СортСтрингАрраиЕкампле3.јава

 import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } 

Излаз:

 [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]