Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3.  
  4. public class QuickSort {
  5.  
  6.     //Podajemy rozmiar listy
  7.     private static int rozmiarListy=10000;
  8.  
  9.     //Podajemy typ wypelnienia listy
  10.     // l-losowo m-malejąco
  11.  
  12.     private static char typWypelnienia='l';
  13.  
  14.     private static int dolnyZakresLosowania=1;
  15.     private static int gornyZakresLosowania=10000;
  16.  
  17.  
  18.  
  19.     private static Integer[] listaSortowania=new Integer[rozmiarListy];
  20.  
  21.     static int liczbaOperacji=0;
  22.  
  23.  
  24.     public static void main(String[] args) {
  25.  
  26.         if (typWypelnienia == 'l') {
  27.             losoweWypelnienieListy();
  28.         } else if (typWypelnienia == 'm') {
  29.             malejaceWypelnienieListy();
  30.         }
  31.  
  32.         quickSort(0,rozmiarListy-1);
  33.         //wypiszListe();
  34.  
  35.         System.out.println(liczbaOperacji);
  36.  
  37.  
  38.     }
  39.  
  40.  
  41.     private static void quickSort(int poczatekPrzedzialu, int koniecPrzedzialu){
  42.  
  43.         int j=poczatekPrzedzialu;
  44.  
  45.         for (int i=poczatekPrzedzialu; i<koniecPrzedzialu; i++ ){
  46.  
  47.             if (listaSortowania[i]<=listaSortowania[koniecPrzedzialu]){
  48.                 zamienMiejscami(i,j);
  49.                 j++;
  50.  
  51.             }
  52.  
  53.         }
  54.  
  55.         if (poczatekPrzedzialu<koniecPrzedzialu) {
  56.  
  57.             zamienMiejscami(j, koniecPrzedzialu);
  58.             quickSort(poczatekPrzedzialu, j-1);
  59.             quickSort(j+1, koniecPrzedzialu);
  60.  
  61.         }
  62.  
  63.     }
  64.  
  65.  
  66.     private static void zamienMiejscami(int indeks1, int indeks2){
  67.  
  68.         liczbaOperacji++;
  69.  
  70.         int zmiennaPetli=listaSortowania[indeks1];
  71.         listaSortowania[indeks1]=listaSortowania[indeks2];
  72.         listaSortowania[indeks2]=zmiennaPetli;
  73.  
  74.     }
  75.  
  76.  
  77.     private static void wypiszListe(){
  78.         for (int i=0;i<rozmiarListy;i++)
  79.             System.out.print(listaSortowania[i]+" , ");
  80.  
  81.         System.out.println("");
  82.         System.out.println("");
  83.  
  84.     }
  85.  
  86.  
  87.     private static void losoweWypelnienieListy(){
  88.         Random random = new Random();
  89.  
  90.         for (int i=0;i<rozmiarListy;i++)
  91.             listaSortowania[i]=(random.nextInt(gornyZakresLosowania - dolnyZakresLosowania + 1) + dolnyZakresLosowania );
  92.  
  93.         //wypiszListe();
  94.  
  95.     }
  96.  
  97.  
  98.     private static void malejaceWypelnienieListy(){
  99.  
  100.         for (int i=0;i<rozmiarListy;i++)
  101.             listaSortowania[i]=rozmiarListy-i;
  102.  
  103.         //wypiszListe();
  104.  
  105.     }
  106.  
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement