![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
KOsTay |
![]()
Сообщение
#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.КЦ В КАКОЙ СТРОЧКЕ ОШИБКА?))[ |
Harch |
![]()
Сообщение
#2
|
Ассистент ![]() ![]() ![]() ![]() Группа: Активисты Сообщений: 834 Регистрация: 21.10.2009 Город: Москва Учебное заведение: МГУ ![]() |
А ваши мысли есть?
|
Botan |
![]()
Сообщение
#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 элемент. З.Ы. еслисвы програмируете на паскале, то думаю вам не составит труда перпевести этот код с С на паскаль. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.5.2025, 14:47 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru