кодесурса

Упражнения на Java: поиск указанного элемента в заданном отсортированном массиве элементов с использованием экспоненциального поиска

script1adsense2code
script1adsense3code

Поиск Java: упражнение 5 с решением

Напишите программу на Java, чтобы найти указанный элемент в заданном отсортированном массиве элементов, используя экспоненциальный поиск.

Из Википедии, в информатике, экспоненциальный поиск (также называемый двойным или скачущим поиском или поиском Струзика) - это алгоритм, созданный Джоном Бентли и Эндрю Чи-Чи Яо в 1976 году для поиска отсортированных, неограниченных / бесконечных списков. Существует множество способов реализовать это, наиболее распространенным из которых является определение диапазона, в котором находится ключ поиска, и выполнение двоичного поиска в этом диапазоне. Для этого требуется O (log i), где i - это позиция ключа поиска в списке, если ключ поиска находится в списке, или позиция, где должен быть ключ поиска, если ключ поиска отсутствует в списке.

Пример решения:

Java-код:

import java.util.Arrays;
public class abc {
	public static void main(String[] args) {
		int nums[] = {1, 2, 3, 4, 5, 6, 7, 8, 21, 34, 45, 91, 120, 130, 456, 564};
        int search_num = 120;
		
		// Find the index of searched item
       int index_result = exponentialSearch(nums, search_num);
       System.out.println(search_num + " is found at index " + index_result);		
		
	}
	private static int exponentialSearch(int[] arr, int i) {
		int start_num = 0;
		
		if(arr[start_num] == i)
			return start_num;
		start_num =1;
		while(start_num < arr.length && arr[start_num] <= i) {
			start_num*=2;
		}
		return Arrays.binarySearch(arr, start_num/2, Math.min(start_num, arr.length), i);
	}
}

Пример вывода:

 120 находится по индексу 12

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Java, чтобы найти указанный элемент в данном массиве элементов, используя поиск интерполяции.
Далее: Напишите программу на Java, чтобы найти указанный элемент в данном массиве элементов, используя тернарный поиск.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code