Advertisement
blackpab

QS - Finall

Jan 15th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.15 KB | None | 0 0
  1. package sortowanko;
  2.  
  3. public class Sortowanko {
  4.    
  5.     public int[] tablica;
  6.     int nElem;
  7.  
  8.     public Sortowanko(int maxSize) {
  9.         tablica = new int[maxSize];
  10.     }
  11.    
  12.     public void add(int value) {
  13.         if(nElem >= tablica.length) {
  14.             int[] temp = new int[tablica.length*2];
  15.             for(int i=0; i<nElem; i++) {
  16.                 temp[i] = tablica[i];
  17.             }
  18.             tablica = temp;
  19.         }
  20.        
  21.         tablica[nElem] = value;
  22.         nElem++;        
  23.     }
  24.    
  25.     public int size(){
  26.         return nElem;
  27.     }
  28.    
  29.     public void print(){
  30.         for(int i=0; i<nElem; i++){
  31.             System.out.print(tablica[i] + " | ");
  32.         }
  33.         System.out.println("");        
  34.     }
  35.    
  36.     public void quickSort(int left,int right) //Sortowanie metoda szybka
  37.     {
  38.         if (left<right)
  39.         {
  40.             int pivot = tablica[left]; //Ustalenie klucza osiowego - PIVOT
  41.             int s=left;
  42.             for (int i=left+1; i<=right; i++)//Zbieranie elementow mniejszych od klucza osiowego po lewej stronie tablicy
  43.             {
  44.                 if (tablica[i]<pivot)
  45.                 {
  46.                     s=s+1;
  47.                     swap(s,i);
  48.                 }
  49.             }
  50.  
  51.             swap(left,s); //Zamiana klucza osiowego z elementem najbardziej wysunietym na prawo, mniejszym od klucza osiowego
  52.  
  53.             quickSort(left,s-1); //Posortowanie elementow mniejszych od klucza osiowego
  54.             quickSort(s+1,right); //Posortowanie elementow wiekszych od klucza osiowego
  55.         }
  56.     }
  57.    
  58.     private void swap(int one, int two) //Zamiana elementow tablicy
  59.     {
  60.         int temp = tablica[one];
  61.         tablica[one] = tablica[two];
  62.         tablica[two] = temp;
  63.     }
  64.    
  65.     public static void main(String[] args) {
  66.        Sortowanko sortuj1 = new  Sortowanko(2);
  67.        sortuj1.add(6);
  68.        sortuj1.add(2);
  69.        sortuj1.add(10);
  70.        sortuj1.add(-49);
  71.        sortuj1.add(33);      
  72.        sortuj1.print();
  73.        System.out.println("==============");
  74.        sortuj1.quickSort(0, sortuj1.size()-1);
  75.        sortuj1.print();                
  76.     }
  77.    
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement