IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сортировка вставками с двоичным поиском,, сортировка вставками с двоичным поиском,
Dima_SLV
сообщение 29.11.2006 18:28
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Dima

Репутация: -  0  +


Добрый день!Помогите плиз надо сделать прогу на паскале.
Метод СОРТИРОВКА ВСТАВКАМИ.Дана возраст. посл-ть a1<a2<..<an.Берем новое число an+1 и помещаем его в исход. посл-ть так,чтоб новая посл. тоже была возраст-ей.
Место помещения очередного элемента в отсортир-ую часть производить с помощью двоич. поиска!двоичный поиск оформить в виде отдельной функции!


var i,x,j, count: integer; size, left, right, center: integer; a:
array[1 .. 100]
of integer;
begin
write('vvedite size'); readln(size); writeln('vvedite elementi');
for i:=1
to size
do readln(a[i]); writeln ('vvedite X'); readln (x);
if x>a[size]
then a[size+1]:=x;
if x<a[1]
then
begin
for j:=size
downto 1
do a[j+1]:=a[j]; a[1]:=x;
end
else
begin left := 1; right := size;
repeat center := (right + left)
div 2; inc(count);
if a[ center ] >= X
then right := center
else left := center;
until (right - left = 1)
or (a[ center ] = X);
for i := size + 1
downto center
do a[i] := a[i - 1]; a[ center ] := X;
end; writeln('count = ', count);
for i:=1
to size+1
do
write (' ',a[i]); writeln; readln;
end.


пример volvo - для случая, когда массив упорядочен по неубыванию...
Мне этот пример подходит только надо двоичный поиск реализовать в виде отдельной функции,я понимаю что это не сложно, но всеравно неполучается!помогите плиз!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 29.11.2006 20:52
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ты путаешь массив и диапазон.
диапазон - это вот так: 1..5, 9..17
возвращать массив вполне можно. и передавать тоже... как это сделать ты можешь прочитать в FAQ
хотя в моем понимании двоичный поиск должен возвращать номер позиции, на которую надо вставить элемент.

Сообщение отредактировано: мисс_граффити - 29.11.2006 20:54


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dima_SLV
сообщение 29.11.2006 21:36
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Dima

Репутация: -  0  +


Цитата(мисс_граффити @ 29.11.2006 22:52) *

ты путаешь массив и диапазон.
диапазон - это вот так: 1..5, 9..17
возвращать массив вполне можно. и передавать тоже... как это сделать ты можешь прочитать в FAQ
хотя в моем понимании двоичный поиск должен возвращать номер позиции, на которую надо вставить элемент.

Но чтобы функция возвратила номер позиции,надо передать в нее исходный массив!Как передавать массив я знаю!Массив взять открытый или явно указать его размерность?
Я на словах понимаю как сделать,а на практике уже бьюсь целый день!А завтра после обеда надо уже показывать готовое задание!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 19:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"