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

 

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