![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
RAVE |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Условие задачи: "Сформировать из строк матрицы B матрицу C, расположив строки так, чтобы количество положительных элементов в строке возрастало с увеличением её порядкового номера". Помогите решить её, плз. (процедуры и функции использоваться не должны).
|
![]() ![]() |
samec |
![]() ![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Реальное имя: Юра Репутация: ![]() ![]() ![]() |
Это циклы, составляющие метод сортировки "пузырьком".
Суть метода в следующем: Для примера возьмём m=5, A=(32861), сортиовать будем по возрастанию, т.е. в конце получаем следующую последователоьность А=(12368). 1 просмотр - просмативаем последовательность 32861, сравнивая слева направо два соседних элемента и переставляя их, если надо: 1 сравнение: 32861 ---> 23861 2 сравнение: 23861 3 сравнение: 23861 ---> 23681 4 сравнение: 23681 ---> 23618 Наибольший элемент 8 "всплыл" (поэтому метод и назывется "пузырьковый":) ) в конце последовательности. 2 просмотр - просмативаем последовательность 2361, сравнивая слева направо два соседних элемента и переставляя их, если надо: 1 сравнение: 2361 2 сравнение: 2361 3 сравнение: 2361 ---> 2316 Наибольший элемент 6 "всплыл" в конце последовательности. 3 просмотр - просмативаем последовательность 231, сравнивая слева направо два соседних элемента и переставляя их, если надо: 1 сравнение: 231 2 сравнение: 231 ---> 213 Наибольший элемент 3 "всплыл" в конце последовательности. 4 просмотр - просмативаем последовательность 21, сравнивая слева направо два соседних элемента и переставляя их, если надо: 1 сравнение: 21 ---> 12 Наибольший элемент 2 "всплыл" в конце последовательности. Итак, для последовательности из из m элементов число просмотров будет равно (m-1). В каждом k-ом просмотре производится (m-k) сравнений элементов. В результате каждого просмотра в конце текущей просматриваемой последовательности "всплывает" наибольший элемент. Вот подробное словесное описание алгоритма: 1 просмотр. Последовательность из m элементов просматривается с лева на право. Каждые 2 соседних элемента А[i] и А[i+1] сравниваются (то есть 1-ый и 2-ой, 2-ой и 3-ий и т.д.) и, если А[i] > А[i+1], то эти элементы ереставляются. В результате наибольший элемент "всплывает" в конце рассматриваемой последовательности из m элементов. 2 просмотр. Последовательность из (m-1) первых элеентов просматривается слева направо. Каждые 2 соседних элемента А[i] и А[i+1] сравниваются (то есть 1-ый и 2-ой, 2-ой и 3-ий и т.д.) и, если А[i] > А[i+1], то эти элементы ереставляются. В результате наибольший элемент "всплывает" в конце рассматриваемой последовательности из (m-1) элементов. ... (m-1) просмотр. Последовательность из m-(m-2)=2, то есть из 2-х элементов просматривается слева направо... теперь стало понятнее??? ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:31 |