Чтобы выводился массив и элемент на "..." позиции и кнопки "Выход", "Необходимое значение".
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Cyber {
public static void main(String[] args) {
new Cyber().foo();
}
private void foo() {
long time;
Scanner scan = new Scanner(System.in);
int[] arr = getRandomArray(100);
System.out.print("Небходимое значение: ");
int value = scan.nextInt();
time = System.currentTimeMillis();
bruteForce(arr, value);
System.out.printf("Пройденное время: %d\n", System.currentTimeMillis() - time);
System.out.println("\nСистемная сортировка...");
time = System.currentTimeMillis();
Arrays.sort(arr);
System.out.printf("Пройденное время: %d\n", System.currentTimeMillis() - time);
time = System.currentTimeMillis();
binarySearch(arr, value);
System.out.printf("Пройденное время: %d\n", System.currentTimeMillis() - time);
}
private int[] getRandomArray(int size) {
int[] array = new int[size];
for (int i = 0; i < size; i++) {
array[i] = new Random().nextInt(100);
System.out.println(array[i]);
}
return array;
}
private void bubbleSort(int[] array) {
System.out.println("\nМетод пузырька.....");
int temp;
boolean isChange = true;
while (isChange) {
isChange = false;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
isChange = true;
}
}
}
System.out.println("Отсортировано!!!");
}
private void bruteForce(int[] array, int value) {
System.out.println("\nПоиск элемента......");
for (int i = 0; i < array.length; i++) {
if (array[i] == value) {
System.out.printf("найдено на %d позиции\n", i);
return;
}
}
System.out.println("Не найдено!");
}
private void binarySearch(int[] array, int value) {
System.out.println("\nНайдено двоичным поиском....");
int position, first = 0, last = array.length - 1;
position = (first + last) / 2;
while ((array[position] != value) && (first <= last)) {
if (array[position] > value) {
last = position - 1;
} else {
first = position + 1;
}
position = (first + last) / 2;
}
if (first <= last) {
System.out.printf("Найдено на %d позиции\n", ++position);
} else {
System.out.println("Не найдено!");
}
}
}