Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_Java.docx
Скачиваний:
10
Добавлен:
01.09.2019
Размер:
103.36 Кб
Скачать

Пример 2. Бинарный поиск с формированием таблицы результатов

Напишем функцию, которая реализует алгоритм бинарного поиска таким образом, чтобы во время работы программы формировалась таблица значений переменных i, j, k и некоторых выражений.

Листинг 2. Поиск в упорядоченном массиве с таблицей промежуточных значений

<HTML>

<HEAD>

<TITLE>Бинарный поиск. Таблица промежуточных значений</TITLE>

<script language="JavaScript">

<!-- //

var v=new Array (2, 3, 5, 6, 6, 7,10,11, 20, 25)

function testtab(obj,v,t)

{ var res="i j k v[k] t<= v[k]"+"\r\n"

var i=0

var j= v.length-1

var k

while ( i < j )

{ k=Math.round( (i+j)/2+0.5)-1

res = res + i + " "+j+" "+k+" "+"v[" + k + "]=" + v[k] + " " + t + "<=" + v[k]+"\r\n"

if (t <= v[k] )

j=k

else

i=k+l

}

res += "v[" + i + "]=" +v[i]+"\r\n"

obj.resultl.value=res

if (v[i] == t )

{ return i}

else return -1

}

function test(obj)

{ obj.datal.yalue=v}

//-->

</script>

</HEAD>

<BODY bgcolor=silver>

<H4>Реализация алгоритма бинарного поиска</H4>

<FORM name="forml">

<pre>

Массив:<INPUT type="text" size=40 name="datal" ><hr>

Элемент:<INPUT type="text" size=20 name="data2" ><hr>

Результат поиска: <INPUT type="text" size=20 name="result" ><hr>

Таблица промежуточных значений: <BR>

<textarea cols=50 rows=7 name="result1" > </textarea><hr>

</PRE>

<input type="button" value=0пpeдeлить onClick="test(form1); forml.result.value=testtab(form1,v,forml.data2.value)">

<input type="reset" value=Отменить>

</FORM>

</BODY>

</HTML>

Задания

1. Проверить пример 2 из лабораторной работы. 2. Создать простейший мультипликационный сюжет с использованием массива. 3. Задан одномерный массив вещественных чисел. Напишите сценарий, который определяет число положительных элементов массива. 4. Задан одномерный массив вещественных чисел. Напишите сценарий, позволяющий найти максимальный элемент в массиве.