M
mastermedia
Написать программу на языке программирования Java2, осуществляющей анализ алгоритмов согласно варианту.
Выполните анализ эффективности алгоритмов последовательного и бинарного поиска данных в одномерном упорядоченном массиве размерностью М, М2, М3 (массив инициируется генератором случайных значений).
Как я понимаю, это нужно сделать с помощью встроенного метода System.nanotime(), но не знаю как это правильно сделать. Выкладываю, то что смог написать. Помогите пожалуйста организовать это в моей программе.
<!--shcode--><pre><code class='java'>public static void main(String[] args) {
System.out.println("Введите М: ");
Scanner in = new Scanner(System.in);
int M = in.nextInt();
}
static int[] array1 (int M){
int[] a = new int[M];
Random r = new Random();
for (int i = 0; i < M; i++)
a = r.nextInt();
return a;
}
public static int linearSearch(int array1[], int first, int upto, int key) {
for (int i = first; i < upto; i++) {
if (key == array1) {
return i;
}
}
return -1;
}
static int binSearch(int array1[], int el) {
if (array1.length == 0) {
return 0;
}
if (array1[array1.length - 1] < el) {
return array1.length;
}
int i = 0;
int j = array1.length;
while (i + 1 < j) {
int middle = i + (j - i) / 2;
if (array1[middle] >= el) {
j = middle;
} else {
i = middle;
}
}
return array1 >= el ? i : j;
}
}[/CODE]
Выполните анализ эффективности алгоритмов последовательного и бинарного поиска данных в одномерном упорядоченном массиве размерностью М, М2, М3 (массив инициируется генератором случайных значений).
Как я понимаю, это нужно сделать с помощью встроенного метода System.nanotime(), но не знаю как это правильно сделать. Выкладываю, то что смог написать. Помогите пожалуйста организовать это в моей программе.
<!--shcode--><pre><code class='java'>public static void main(String[] args) {
System.out.println("Введите М: ");
Scanner in = new Scanner(System.in);
int M = in.nextInt();
}
static int[] array1 (int M){
int[] a = new int[M];
Random r = new Random();
for (int i = 0; i < M; i++)
a = r.nextInt();
return a;
}
public static int linearSearch(int array1[], int first, int upto, int key) {
for (int i = first; i < upto; i++) {
if (key == array1) {
return i;
}
}
return -1;
}
static int binSearch(int array1[], int el) {
if (array1.length == 0) {
return 0;
}
if (array1[array1.length - 1] < el) {
return array1.length;
}
int i = 0;
int j = array1.length;
while (i + 1 < j) {
int middle = i + (j - i) / 2;
if (array1[middle] >= el) {
j = middle;
} else {
i = middle;
}
}
return array1 >= el ? i : j;
}
}[/CODE]