Помощь - Поиск - Пользователи - Календарь
Полная версия: Методы сортировки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
malishka
Помогите, пожалуйста решить задачку :

Найти элементы каждой строки матрицы, которые повторяются наибольшее число раз в своей строке.

Спасибо.
Lapp
Стоп. А при чем тут сортировка?.. blink.gif
malishka
Ну без сортировки, как я поняла, здесь трудно будет. Да и задача размещена в разделе "сортировки".
Lapp
Цитата(malishka @ 10.01.2009 11:17) *
без сортировки, как я поняла, здесь трудно будет. Да и задача размещена в разделе "сортировки".
Сортировка чего по чему?
malishka
Вообще я алгоритм решения представляю, просто никак не могу его реализовать, может кто поможет.

1)Используя доп. массив. Берем строку, берем элемент и проверяем на равенство со всеми элементами в строке, в доп. массив записываем элемент и счетчик, так делаем со всеми элементами, а потом сортируем счетчики и выводим элемент с максимальным счетчиком.
2)Сразу сортируем строку по взорастанию. И далее нужно пробежаться по всем образованным последовательностям.
Lapp
Для поиска максимального элемента не нужна сортировка. Сортировать для этого - это значит делать большую лишнюю работу. Все равно как, чтобы съесть бутерброд с колбасой, нужно сделать бутерброды с сыром, рыбой, маслом и колбасой, а потом выбрать из них бутерброд с колбасой, а остальные выбросить.

Вот решение без сортировки и без дополнительных массивов. Разбирайся.
Вопросы welcome smile.gif
const
m=8;
n=10;

var
a: array[1..m,1..n]of integer;
i,j,k,l,x,y: integer;

begin
for i:=1 to m do for j:=1 to n do a[i,j]:=Random(n*m div 4);
for i:=1 to m do begin
for j:=1 to n do Write(a[i,j]:4);
WriteLn
end;
for i:=1 to m do begin
y:=0;
for j:=1 to n do begin
x:=0;
for k:=1 to n do if a[i,j]=a[i,k] then Inc(x);
if y<x then begin
y:=x;
l:=j
end
end;
WriteLn(a[i,l])
end;
ReadLn
end.



Добавлено через 11 мин.
Скорее всего, имелось в виду следующее..
Отсортировать каждую строку (по возрастанию или убыванию, по желанию). Потом за один проход найти максимальное кооличество одинаковых чисел, идущих подряд.

Добавлено через 1 мин.
Видимо, это то же самое, что у тебя под номером 2. Извини, не сразу врубился..(
malishka
Наверное да=). Все равно большое спасибо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.