Java >> Java tutorial >  >> Java

Java-program til at sortere et array i faldende rækkefølge

I denne øvelse lærer vi, hvordan man sorterer elementerne i et array i faldende rækkefølge. Sortering refererer til at arrangere data i rækkefølge enten alfabetisk eller numerisk. Men før du går videre, hvis du ikke er bekendt med begreberne for arrayet, så tjek artiklen Arrays in Java.

Input: 5 4 6 7 8 2 3 1 9

Output: 9 8 7 6 5 4 3 2 1

Program 1:Sorter elementerne i en matrix i faldende rækkefølge

I denne tilgang vil vi se, hvordan man bruger loops til at sortere et array i faldende rækkefølge. Vi kan sortere arrayet ved at bruge manuel sortering som at bruge til loops. Hvad vi kan gøre er at bruge to til sløjfer, en til at krydse arrayet fra starten og en anden til at sløjfe inde i den ydre for at krydse det næste element. I kroppen kan vi sammenligne de tilstødende elementer og bytte, hvis de ikke er i orden. Vi kan også bruge en midlertidig variabel til ombytning af elementer.

Algorithme

  1. Start
  2. Deklarer en matrix
  3. Initialiser arrayet
  4. Deklarer en midlertidig variabel for at gemme elementerne, mens du bytter.
  5. Brug to til sløjfer til det samme.
  6. Brug den første for-løkke til at holde elementerne og krydse gennem alle elementerne.
  7. Brug den anden for-løkke til at sammenligne med de resterende elementer.
  8. Sortér elementerne ved at sammenligne og bytte.
  9. Vis det opdaterede array.
  10. Stop

Nedenfor er koden til det samme.

Nedenstående program viser, hvordan man sorterer et array i faldende rækkefølge ved hjælp af loops.

/*Java Program to Sort an Array in Descending Order*/
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n;    //Array Size Declaration
        System.out.println("Enter the number of elements :");
        n=sc.nextInt();    //Array Size Initialization
        
        Integer arr[]=new Integer[n];    //Array Declaration
        System.out.println("Enter the elements of the array :");
        for(int i=0;i<n;i++)     //Array Initialization
        {
            arr[i]=sc.nextInt();
        }
        
        int temp = 0;    //Temporary variable to store the element
        
         for (int i = 0; i < arr.length; i++)   //Holds each Array element
         {     
            for (int j = i+1; j < arr.length; j++)    //compares with remaining Array elements
            {     
               if(arr[i] < arr[j]) //Compare and swap
               {    
                   temp = arr[i];    
                   arr[i] = arr[j];    
                   arr[j] = temp;    
               }     
            }     
        }    
          
        System.out.println();    
            
        //Displaying elements of array after sorting    
        System.out.println("Elements of array sorted in descending order: ");    
        for (int i = 0; i < arr.length; i++) 
        {     
            System.out.print(arr[i] + " ");    
        }    
    }
}


Indtast antallet af elementer:10
Indtast elementerne i arrayet:6 7 4 51 2 3 9 77 8 4

Elementer i array sorteret i faldende rækkefølge:
77 51 9 8 7 6 4 4 3 2

Program 2:Sorter elementerne i et array i faldende rækkefølge

I denne tilgang vil vi se, hvordan man bruger Arrays.sort() og Collections.reverseOrder() til at sortere en matrix i faldende rækkefølge. Arrays-klassen af ​​'java.util'-pakken giver sorteringsmetoden, der tager et array som et argument og sorterer arrayet. Dette er en direkte sorteringsmetode, og arrayet kan sorteres i stigende rækkefølge med kun ét metodekald. Derefter, når Collections.reverseOrder() bruges, vender det rækkefølgen af ​​arrayet om, og det resulterende array er nu i faldende rækkefølge.

Algorithme

  1. Start
  2. Deklarer en matrix
  3. Initialiser arrayet
  4. Brug Arrays.sort() for at sortere elementerne i stigende rækkefølge.
  5. Brug derefter Collections.reverseOrder () for at vende rækkefølgen.
  6. Det opdaterede array vil nu være i faldende rækkefølge.
  7. Udskriv det opdaterede array.
  8. Stop

Nedenfor er koden til det samme.

En pointe, der skal bemærkes her, er, at Collections.reverseOrder() ikke virker for primitive typer. Så vi vil definere et array med heltal.

Nedenstående program viser, hvordan man sorterer et array i faldende rækkefølge ved hjælp af Arrays.sort() og Collections.reverseOrder()

/*Java Program to Sort an Array in Descending Order*/

import java.util.Arrays; 
import java.util.Collections; 
import java.util.Scanner;

public class Main 
{ 
    public static void main(String[] args) 
    { 
        //Collections.reverseOrder do not work for primitive Types 
        //define an array with Integer
         Scanner sc=new Scanner(System.in);
         System.out.println("Enter the number of elements ");
         Integer n=sc.nextInt();
         System.out.println("Enter the array elements ");
         Integer[] arr=new Integer[n];
         for(int i=0;i<n;i++)
         {
             arr[i]=sc.nextInt();
         }
 
        //print original array
        System.out.printf("Original Array: %s", 
                 Arrays.toString(arr)); 
 
        // Sorts the array in descending order 
        Arrays.sort(arr, Collections.reverseOrder()); 
 
        //print sorted array  
        System.out.printf("\n\nSorted Array: %s", 
               Arrays.toString(arr)); 
    } 
}


Indtast antallet af elementer 10
Indtast array-elementerne 6 7 4 51 2 3 9 77 8 4
Original Array:[6, 7, 4, 51, 2, 3, 9, 77, 8, 4]

Sorteret matrix:[77, 51, 9, 8, 7, 6, 4, 4, 3, 2]


Java tag