import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class Searching { public static void main(String[] args) { Random random = new Random(); int x = 0; int[] tabSearch = new int[20]; generateRandoms(random, tabSearch); System.out.println("wygenerowana:"); wypiszTablicę(tabSearch); System.out.println("------------------------------"); Arrays.sort(tabSearch); wypiszTablicę(tabSearch); System.out.println("--------------------------------------"); System.out.println(search(tabSearch, 10)); System.out.println(binarySearch(tabSearch, 10, 0,19)); // int[] binar = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 12, 13, 14, 14, 532, 642}; // // System.out.println(binarySearch(binar, -1, 0, 16)); } public static void wypiszTablicę(int[] tabSearch) { for (int i: tabSearch) { System.out.println(tabSearch[i]); } } public static void generateRandoms(Random random, int[] tabSearch) { for (int i = 0; i < tabSearch.length; i++) { tabSearch[i] = random.nextInt(20); } } public static void pobierzTablice(int rozmiar) { int[] nazwaTablicy = new int[rozmiar]; Scanner in = new Scanner(System.in); for (int i = 0; i < nazwaTablicy.length; i++) { nazwaTablicy[i] = in.nextInt(); } wypiszTablicę(nazwaTablicy); } public static int search(int[] tablica, int szukajLiczby) { int result = -1; for (int i = 0; i < tablica.length; i++) { if (tablica[i] == szukajLiczby) { result = i; break; } } return result; } // public static int searchWartownik(int[] tablica, int szukajLiczby) { // // int result = -1; // for (int i = 0; i < tablica.length; i++) { // if (tablica[i] == szukajLiczby) { // result = i; // break; // } // } // return result; // } public static int binarySearch(int[] tablica, int szukajLiczby, int start, int stop) { Arrays.sort(tablica); int index = -1; int srodek = stop-1 / 2; if (start < 0 || stop < 0) { return index ; } if (tablica[srodek] == szukajLiczby) { index = srodek; } else if (tablica[srodek] < szukajLiczby) { index = binarySearch(tablica, szukajLiczby, srodek + 1, stop - 1); } else { index = binarySearch(tablica, szukajLiczby, start, srodek - 1); } return index; } }