Advertisement
kamasazi99

aiz lab 10

Dec 14th, 2019
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.37 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package mysort;
  7.  
  8. import java.util.Random;
  9. import static mysort.Sort.SortMethod.BUBBLE;
  10. import static mysort.Sort.SortMethod.SELECTION;
  11.  
  12. /**
  13.  *
  14.  * @author Hubert
  15.  */
  16. public class Mysort extends Sort{
  17.  
  18. int ilosc = 0;
  19.     public static void main(String[] args) {
  20.         Mysort m=new Mysort();
  21.         System.out.println("===Wylosowane liczby===");
  22.         m.wypelnij(5, 10);
  23.         m.wypisz();
  24.         m.sortuj(true, SELECTION);
  25.         m.wypisz();
  26.         m.sortuj(true, BUBBLE);
  27.         m.wypisz();
  28.     }
  29.  
  30.    
  31.     //=====================================================1 zadanie
  32.     @Override
  33.     protected int losuj(int w_max) {
  34.         Random random = new Random();
  35.         return random.nextInt(w_max + 1);    
  36.     }
  37.         @Override
  38.     public void wypisz() {
  39.        
  40.             for (int i = 0; i < super.ile; i++) {
  41.             System.out.print(super.tab[i] + "  ");
  42.         }
  43.             System.out.println();
  44.         System.out.println("ilosc porownan: " + ilosc);
  45.     }
  46.    
  47.         @Override
  48.     public void wypelnij(int n, int wartosc_maksymalna) {
  49.         tab = new int[n];
  50.         for (int i = 0; i < n; i++) {
  51.             super.tab[i] = losuj(wartosc_maksymalna);
  52.             super.ile++;
  53.         }
  54.     }
  55.    
  56.       //=====================================================2  zadanie
  57.     private boolean sprawdzaj(int a, int b, boolean czy_rosnie) {
  58.         ilosc++;
  59.         if (czy_rosnie) {
  60.             if (a > b) {
  61.                 return true;
  62.             } else {
  63.                 return false;
  64.             }
  65.         } else {
  66.             if (a < b) {
  67.                 return true;
  68.             } else {
  69.                 return false;
  70.             }
  71.         }
  72.     }
  73.  
  74.     @Override
  75.     protected void selectionsort(boolean rosnaco) {
  76.         System.out.println("===Selection sort===");
  77.         for (int i = 0; i < tab.length - 1; i++) {
  78.             int minimalna = i;
  79.             for (int j = i + 1; j < tab.length; j++) {
  80.                 if (sprawdzaj(tab[j], tab[minimalna], rosnaco)) {
  81.                     minimalna= j;
  82.                 }
  83.                 int pomocnicza = tab[minimalna];
  84.                 tab[minimalna] = tab[i];
  85.                 tab[i] = pomocnicza;
  86.             }
  87.         }
  88.     }
  89.          //=====================================================3  zadanie
  90.    
  91.        @Override
  92.     protected void insertsort(boolean rosnaco) {
  93.         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  94.     }
  95.  
  96.           //=====================================================4  zadanie
  97.    
  98.         @Override
  99.     protected void bubblesort(boolean rosnaco) {
  100.  
  101.         System.out.println("===Bubble sort===");
  102.         for (int i = 0; i < tab.length - 1; i++) {
  103.             for (int j = 0; j < tab.length - 1; j++) {
  104.                 if (sprawdzaj(tab[j], tab[j + 1], rosnaco)) {
  105.                     int pomocnicza = tab[j];
  106.                     tab[j] = tab[j + 1];
  107.                     tab[j + 1] = pomocnicza;
  108.                 }//if
  109.  
  110.             }//for2
  111.         }//for1
  112.     }
  113.  
  114.  
  115.           //=====================================================5  zadanie
  116.  
  117.     @Override
  118.     public void sortuj(boolean rosnaco, SortMethod metoda) {
  119.         switch (metoda) {
  120.             case INSERTION:
  121.                 this.insertsort(rosnaco);
  122.                 break;
  123.             case SELECTION:
  124.                 this.selectionsort(rosnaco);
  125.                 break;
  126.             case BUBBLE:
  127.                 this.bubblesort(rosnaco);
  128.                 break;
  129.             default:
  130.                 throw new RuntimeException();
  131.         }
  132.     }
  133.  
  134.     private void selectionsort(boolean b, SortMethod sortMethod) {
  135.         System.out.println("===Selection sort===");
  136.         for (int i = 0; i < tab.length - 1; i++) {
  137.             int minimalna = i;
  138.             for (int j = i + 1; j < tab.length; j++) {
  139.                 if (sprawdzaj(tab[j], tab[minimalna], b)) {
  140.                     minimalna= j;
  141.                 }
  142.                 int pomocnicza = tab[minimalna];
  143.                 tab[minimalna] = tab[i];
  144.                 tab[i] = pomocnicza;
  145.             }
  146.         }   }
  147.  
  148.  
  149.    
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement