решение задания по матрицам
|
|
Moon_Rider | Дата: Понедельник, 20 Декабря 2010, 21:24 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Ввести матрицу размером NxM. Память для массива выделить динами- чески. Выполнить в соответствии с номером варианта индивидуальное зада- ние и вывести на экран исходные данные и полученный результат. Найти в каждой строке матрицы максимальный элемент. Как это сделать? Что то пробовал делать - не могу...
|
|
| |
BOOM | Дата: Понедельник, 20 Декабря 2010, 21:30 | Сообщение # 2 |
I am the creator of ADE
Сейчас нет на сайте
| Quote (Moon_Rider) Память для массива выделить динами- чески. Code vector< vector<int> > __matrix; Quote (Moon_Rider) Найти в каждой строке матрицы максимальный элемент. Используй пузырьковый метод. По матрицам вот тебе материальчик, может поможет.
______________________________ Я вернулся, и это чудо. ______________________________
|
|
| |
Lorderon | Дата: Понедельник, 20 Декабря 2010, 21:36 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Quote (BOOM) Используй пузырьковый метод. То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки. У тебя С? С++? С#?
|
|
| |
BOOM | Дата: Понедельник, 20 Декабря 2010, 21:40 | Сообщение # 4 |
I am the creator of ADE
Сейчас нет на сайте
| Borland С++. Quote (Lorderon) То есть, если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки. Ну, да. Этот метод не супер быстрый, но самый простой.
______________________________ Я вернулся, и это чудо. ______________________________
|
|
| |
Moon_Rider | Дата: Понедельник, 20 Декабря 2010, 21:54 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Visual C++ надо. Как бы там сделать?
|
|
| |
Vinchensoo | Дата: Вторник, 21 Декабря 2010, 07:14 | Сообщение # 6 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Lorderon) То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки. У тебя С? С++? С#? Мы, кстати, ради интереса смотрели 1 опыт. Суперкомпьютер пузырковым методом обрабатывает бд в течении 13 дней. Обычный домашний компьютер с эффективным алгоритмом поиска обрабатывает эту же бд за 7 минут. Вдумайся) Пузырек лучше не исп. для серьезных программ(в бд подразумевалось начилие 1 000 000 записей)
|
|
| |
Serg1971 | Дата: Вторник, 21 Декабря 2010, 10:06 | Сообщение # 7 |
Весёлый программист
Сейчас нет на сайте
| Lorderon, BOOM, Vinchensoo, Человек видимо - домашку по программированию сделать не может! Вот блин, программисты пошли! И вы ему - неправильно советуете! Пузырьковый метод - используется для упорядочивания (сортировки) значений по возрастанию-убыванию. А у него - всё должно остаться на своих местах. Используется метод мини-макса. Берётся первое значение, сохраняется... Берётся следущее, если больше сохранённого - сохраняется это, если нет - идём дальше и берём следующее значение... Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход! ЗЫ. Надеюсь разжёванное ТС в состоянии положить на код, а иначе - мда...
|
|
| |
Vinchensoo | Дата: Вторник, 21 Декабря 2010, 12:36 | Сообщение # 8 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Serg1971) Lorderon, BOOM, Vinchensoo, Человек видимо - домашку по программированию сделать не может! Вот блин, программисты пошли! И вы ему - неправильно советуете! Пузырьковый метод - используется для упорядочивания (сортировки) значений по возрастанию-убыванию. А у него - всё должно остаться на своих местах. Используется метод мини-макса. Берётся первое значение, сохраняется... Берётся следущее, если больше сохранённого - сохраняется это, если нет - идём дальше и берём следующее значение... Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход! Во-первых, я ему не советовал использовать пузырек.Quote (Vinchensoo) Пузырек лучше не исп. для серьезных программ(в бд подразумевалось начилие 1 000 000 записей) Во-вторых, перебор двумерного массива- тот же пузырь, только без перестановки элементов. Имхо, если ТС этого не понял, то сам код он не напишет. Quote (Serg1971) Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход! Неясная мне шняга. Элементы могут и не стоять в одном стобле, нужно их сравнивать со всеми. Serg1971, возможно есть 2 формулировки пузыря. Потому что я как-то спорил со своим преподавателем по этому поводу. Мб есть расширенный и упрощенный алгоритм. Суть та же, в любом случае. Quote (Serg1971) идём дальше и берём следующее значение... Нужно номер строки сохранять, а не сам элемент. Как на сях выделять динам. память- не знаю. Могу дать код самого перебора, если нужно. Но он легко пишется.
|
|
| |
Serg1971 | Дата: Вторник, 21 Декабря 2010, 13:29 | Сообщение # 9 |
Весёлый программист
Сейчас нет на сайте
| Vinchensoo, да согласен - одноразовый проход методом пузырька даст максимальное число! Но принцип при пузырьковой сортировке: Quote (Lorderon) То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки. т.е. перемещение максимального числа в конец массива... А ТС нужно: Quote (Moon_Rider) Найти в каждой строке матрицы максимальный элемент. Я предлагаю следующий метод, немного подробнее поясню... Массив А (M,N) - М строк, N- столбцов... Создаём дополнительный одномерный массив В(М) с количеством элементов, равным - количеству строк т.е. М. В этом массиве - будет храниться самое большое число в каждой данной строке. Берём первое число в каждой строке - запоминаем его в массиве В. Берём второе число в каждой строке, сравниваем его с соответствующим числом в массиве В - если больше сохраняем в массиве и т.д! После перебора всех столбцов N - у нас в массиве В - будут максимальные числа в каждой строке! Индекс элемента массива В - равен номеру строки М
|
|
| |
Vinchensoo | Дата: Вторник, 21 Декабря 2010, 13:33 | Сообщение # 10 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Serg1971) Найти в каждой строке матрицы максимальный элемент. Cсори, прочитал "в какой". Думал номер строки. Тогда действительно нужно идти во всех строках сразу, в каждой выделяя максимум
|
|
| |