IPB

Здравствуйте, гость ( Вход | Регистрация )

> алгоритм))
KOsTay
сообщение 25.11.2010, 17:32
Сообщение #1


Школьник
*

Группа: Продвинутые
Сообщений: 16
Регистрация: 25.11.2010
Город: екатеринбург
Вы: студент



Была создана программа, которая должна выполнять сортировку массива x [0..n] по возврастанию, последующему алгоритму: на каждом шаке выбирается следующий по порядку элемент входных данных и вставляет на нужную позицию в уже отсортированном списке, до тех пол, пока набор входных данных не будет исчерпан. основная часть кода программы выглядет так:

1. НЦ ДЛЯ i ДО n
2. t: x[i]
3. НЦ ДЛЯ j ОТ 1 ДО i
4. k:=j
5. ЕСЛИ x[j-1]<=t
6. ТО ПРЕРВАТЬ ЦИКЛ
7. ВСЕ
8. x[j]:=[j-l]
9. k:=j-1
10. КЦ
11. x[k]:=t
12.КЦ

В КАКОЙ СТРОЧКЕ ОШИБКА?))[
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов(1 - 2)
Harch
сообщение 26.11.2010, 13:43
Сообщение #2


Ассистент
****

Группа: Активисты
Сообщений: 834
Регистрация: 21.10.2009
Город: Москва
Учебное заведение: МГУ



А ваши мысли есть?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Botan
сообщение 26.12.2010, 11:41
Сообщение #3


Новичок
*

Группа: Продвинутые
Сообщений: 5
Регистрация: 26.12.2010
Город: Moscow
Учебное заведение: МГТУ им Н.Э. Баумана
Вы: студент



Я не знаю, где тут у вас ошибка, ибо мне непонятны некоторые ваши обозначения. А по сему привожу работостособный участок кода на С++

где то у вас должна быть прописана процедура swap, которая будет менять местами значения 2х переменных :

void swap(int &p, int &q)
{
int t = p;
p = q;
q= t;
}

а теперь собственно код:

for(int i = 0; i<n; ++i)
{
int tmp = i;
for(int j = i; j<n; ++j) //вот в этом цикле мы будем искать наименьшее из оставшихся значений
{ //и его номер положим в переменную tmp
if(a[j]<a[tmp])
{
tmp = j;
}
}
swap(a[i], a[tmp]);
}

Таким оборазом, у нас этот отсортированный кусок будет находится в начале массива, и с каждой итерацией внешнего цикла он будет увеличиватся на 1 элемент.
З.Ы. еслисвы програмируете на паскале, то думаю вам не составит труда перпевести этот код с С на паскаль.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 



- Текстовая версия Сейчас: 28.5.2025, 21:47

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru