Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class main {
  4. public static void main(String[] args) {
  5.  
  6. Scanner sc= new Scanner(System.in); //Scannera bedziemy potrzebowac do zeskanowania liczby z klawiatury
  7. int [] a=new int [] {5, 3, 7, 4, 1, 8, 2}; //Inicjowanie tablicy
  8. System.out.println("Tablica przed sortowaniem: ");
  9. for(int i=0; i<a.length; i=i+1) //wypisanie tablicy przed posortowaniem
  10. System.out.println(a[i]+" ");
  11. sortowanieBabelkowe(a); //uzycie sortowania
  12. System.out.println("\n Tablica po sortowaniu: ");
  13. for(int i=0; i<a.length; i=i+1) //wypisanie tablicy po posortowaniem
  14. System.out.println(a[i]+" ");
  15. System.out.println("Podaj liczbe którą chcesz wyszukac");
  16. int liczba=sc.nextInt(); //przypisanie scannera do zmiennej
  17. if(wyszukiwanieBinarne(a,liczba)==-1) //Sprawdzenie czy wyszukiwanie znalazlo liczbe
  18. System.out.println("Liczba nie znajduje się w tablicy"); // jesli wynik wyszedł -1 oznacza to że nie ma liczby w tablicy
  19. else //Kazdy inny przypadek to numer indeksu na ktorym jest liczba
  20. System.out.println("Liczba znajduje się w tablicy na miejscu: "+(wyszukiwanieBinarne(a,liczba)+1));
  21. }
  22.  
  23. static void sortowanieBabelkowe(int[] b){ //sortowanie
  24. int i; int k; int buf;
  25. for(k=b.length-1; k>0; k=k-1) //gorna petla po wszystkich elementach od lewej do prawej
  26. for(i=0; i<k; i=i+1) // dolna petla bioraca wszystkie elementy z prawej
  27. if(b[i] > b[i+1]){ //sprawdzenie czy liczba jest mniejsza i ewentualna zamiana
  28. buf=b[i]; //przypisanie zeby nie zgubic aktualnej liczby
  29. b[i]=b[i+1]; //zamiana
  30. b[i+1]=buf; //zamiana
  31. }
  32. }
  33.  
  34. static int wyszukiwanieBinarne(int[] tablica, int klucz){
  35. int dol = 0; //poczatek naszej tablicy
  36. int gora = tablica.length - 1; //koniec naszej tablicy
  37. while (dol <= gora) { //warunek zakonczenia petli jesli nasza tablica jest minimalnego rozmiaru
  38. int srodek = dol + (gora - dol) / 2; //srodek tablicy obliczony ze sredniej
  39. if (klucz < tablica[srodek]) gora = srodek - 1; //jesli szukana liczba jest mniejsza niz srodkowy element tablicy to zmniejszamy nasza tablice o polowe w dol
  40. else if (klucz > tablica[srodek]) dol = srodek + 1; //jesli szukana liczba jest wieksza niz srodkowy element tablicy to
  41. //zmniejszamy naszą tablice do polowy ale idziemy do drugiej połówki(tej większej)
  42. else return srodek; //zwracamy indeks liczby której szukaliśmy i wychodzimy z wyszukiwania
  43. }
  44. return -1; //petla nie znalazla naszej liczby wiec zwracamy wartosc ujemna(dziala jesli w tablicy nie ma wartosci ujemnych)
  45. }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement