![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: 0 Всего: 1 |
Здраствуйте. Написал прогу, которая сортируэт индексы массивов (от наибольшего до найменшего).
Вот код:
Мне на экран выводит все нули. |
|||
|
||||
| JackYF |
|
||||||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Что она сортирует? Индексы? Этот как? и зачем инструкция
Ты хотел сказать
И причем тут максимальный элемент? Короче, расскажи по порядку задачу: что на входе программы, что должно быть на выходе... Добавлено @ 19:34 Да, кстати. И инструкция
Может выйти за пределы массива, если x=4. |
||||||
|
|||||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: 0 Всего: 1 |
Розказую. У меня эсть какой-нибудь одновымерный массив. И индксы массыва посортировать от максимально до минимального. Например если в нас на входе A[5]={5,3,8,6,2}, то на выходе должно быть A[5]={8,6,5,3,2}.
Вот и всё. P.S.
Имелось ввиду остановить цыкл. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Задача понятна.
Так вот: делается это двумя проходами, однако что-то у тебя слишком запутано. Приблизительно так:
Приблизительно так. Это классическая пузырьковая сортировка. Добавлено @ 20:11 Да, и еще. То, что ты хочешь сортировать по убыванию, называется элементами, а не индексами. Индекс - это положение элемента в массиве. |
|||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: 0 Всего: 1 |
что такое std::swap
Я уже знаю Это сообщение отредактировал(а) Sergio - 18.10.2006, 23:49 |
|||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: 0 Всего: 1 |
JackYF, Помоги розобратся с кодом что ты написал...
|
|||
|
||||
| EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
const int N = 5;
for ( int i = N; i >= 1; --i) for ( int j = 1; j < i; ++j ) { if ( A[j-1] < A[j] ) { std::swap( A[j-1], A[j] ); } } заместо того чтобы в программе писать писать какое-то одно значение (в данном случае N) пишется константа, т.е. в место гед написанно N компилятор видит 5 - это уудобно для изменения и наглядно. Так как незачем сравнивать первый элемент сам с собой j = 1; и по проходу цикла последний элемент у тебя будет автоматом "вытолкнут" на верх -> можно убрать еще одну итерацию. в цикле смотрится, если предыдущий элемент больше нынешнего, то вызывается функция свап которая меняет местами переданные ей аргументы. З.Ы. ну ты в своей проге и намудрил -------------------- <удалено администрацией форума> |
|||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: 0 Всего: 1 |
EvgenZ, я же не знал , что есть такая замечательная функция как swap()
Всем спасибо. Тема закрыта. |
|||
|
||||
| EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
Sergio, да свап тут даже не причем... можно было и через третью переменную сделать без гемора...
-------------------- <удалено администрацией форума> |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |