Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package algorithms1_rugam;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.HashSet;
- import java.util.Random;
- import java.util.Scanner;
- import java.util.Set;
- /**
- *
- * @author t166056
- */
- public class Algorithms1_Rugam {
- /**
- * @param args the command line arguments
- */
- static Integer[] arr=new Integer[100];
- public static void main(String[] args) {
- Random rnd=new Random();
- int menuu;
- System.out.println("See on Counting sort");
- System.out.printf("%n1.Dublikeeritud sortimine.%n2.Mitte Dublikeeritud.%n3.Programmist v2lja");
- Scanner sc = new Scanner(System.in);
- menuu=sc.nextInt();
- do{
- switch(menuu)
- {
- case 1:
- //With duplicates
- for (int i = 0; i < arr.length; i++)
- {
- arr[i]=rnd.nextInt(100);
- }
- Counting();
- System.out.println(Arrays.toString(arr));
- ;break;
- case 2:
- Set<Integer> set=new HashSet<>();
- while(set.size()!=arr.length)
- {
- set.add(rnd.nextInt(10));
- }
- arr=set.toArray(new Integer[0]);
- Counting();
- System.out.println(Arrays.toString(arr));;break;
- case 3:
- System.out.println("Programmist on v2lja mindud, head aega!");
- ;break;
- default: System.out.println("Valige menyyst vastav valik 1-3. Valisite vale numbri.");
- }
- }while(menuu!=3);
- }
- public static void Counting()
- {
- int t=arr.length;// Muutuja T on meil massiivi nimega arr.(length = see tahendab pikkust)
- if(t==0)//Kui meie massiivis puuduvad arvud
- {
- System.out.println("Teie massiiv on tyhi");//prinditakse ekraanile vastav tekst
- }
- int max=arr[0],min=arr[0];// Siin anname min ja max ile v22rtused, panime vorduma nulliga selleparast, kuna nad on eraldi meetodis, siis nad peavad olema tyhjad
- for(int i=0;i<t;i++)//Meie tsykkel
- {
- if(arr[i]>max){max=arr[i];}//Maksimaalne
- if(arr[i]<min){min=arr[i];}//Minimaalne
- }
- int sorteerimata=max-min+1;//See on meie sorteerimata massiiv
- int[]loe=new int[sorteerimata];
- for(int i=0;i<t;i++)
- {
- loe[arr[i]-min]++;//Siin loome massiivi loendamise iga elemendi jaoks.
- }
- for(int i=1;i<sorteerimata;i++)//Muudame meie massiivi nii, et meie masiiv oleks loplikult taidetud
- {
- loe[i]+=loe[i-1];
- }
- int k=0;
- for(int i=0;i<sorteerimata;i++)//Siin muudame meie esialgset massiivi
- {
- while(k<loe[i])
- {
- arr[k++]= i+min;
- }
- }
- }
- public static void CountingNeg()
- {
- int t=arr.length;// Muutuja T on meil massiivi nimega arr.(length = see tahendab pikkust)
- if(t==0)//Kui meie massiivis puuduvad arvud
- {
- System.out.println("Teie massiiv on tyhi");//prinditakse ekraanile vastav tekst
- }
- int max=arr[0],min=arr[0];// Siin anname min ja max ile v22rtused, panime vorduma nulliga selleparast, kuna nad on eraldi meetodis, siis nad peavad olema tyhjad
- for(int i=0;i<t;i++)//Meie tsykkel
- {
- if(arr[i]>max){max=arr[i];}//Maksimaalne
- if(arr[i]<min){min=arr[i];}//Minimaalne
- }
- int sorteerimata=max-min-1;//See on meie sorteerimata massiiv
- int[]loe=new int[sorteerimata];
- for(int i=0;i<t;i++)
- {
- //loe[i]++;//Siin loome massiivi loendamise iga elemendi jaoks.
- }
- for(int i=1;i>sorteerimata;i--)//Muudame meie massiivi nii, et meie masiiv oleks loplikult taidetud
- {
- loe[i-1]+=loe[i];
- }
- int k=0;
- for(int i=0;i<sorteerimata;i++)//Siin muudame meie esialgset massiivi
- {
- while(k<loe[i])
- {
- arr[k++]= i+min;
- }
- }
- }
- }
- http://www.sanfoundry.com/java-program-implement-counting-sort/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement