Страница 3 из 4

Re: Посмотрите задачу на С++

Добавлено: 11 мар 2008, 20:09
Anton_XXX
биг спс!))

Re: Посмотрите задачу на С++

Добавлено: 13 мар 2008, 21:43
Anton_XXX
Привет всем! У меня новая проблемка, чет я "не догоняю"...))
Мне бы алгоритм... программу я сам составлю...
Задание: Найти минимальный из неповторяющихся элементов двумерного массива.

Массив двумерный я написал в программе... я спокойно могу написать нахождение минимального элемента в массиве, НО неповторяющихся элементов - непонимаю как написать...! Есть у меня идеи, их можно реализовать, но они "тугоемкие"...

Пожалуйста... подскажите способы, как можно найти минимальный из неповторяющихся элементов двумерного массива...

Re: Посмотрите задачу на С++

Добавлено: 13 мар 2008, 23:47
airyashov
отсортировать попробуйте, если следующий не равен предыдущему, то предыдущий это и есть минимальный из неповторяющихся

Re: Посмотрите задачу на С++

Добавлено: 15 мар 2008, 14:17
Anton_XXX
у меня тоже была мысль отсортировать.... щас реализую... спс

Re: Посмотрите задачу на С++

Добавлено: 15 мар 2008, 14:53
Anton_XXX
а что если следующий элемент равен предыдущему элементу, то как быть?

какая-то путаница получается....!))

Re: Посмотрите задачу на С++

Добавлено: 15 мар 2008, 15:12
airyashov
Anton_XXX писал(а):а что если следующий элемент равен предыдущему элементу, то как быть?

какая-то путаница получается....!))
перейти к следующему элементу для анализа.

Re: Посмотрите задачу на С++

Добавлено: 16 мар 2008, 09:33
Anton_XXX
щас попробую...

Re: Посмотрите задачу на С++

Добавлено: 16 мар 2008, 09:43
Anton_XXX
нет... это все не то...
вот что я сделал:

for (i=0; i<5; i++)
for (j=0; j<5; j++)
{
if ((min>mas[j]) && (min!=mas[j])) min=mas[j];
if (min==mas[j]) min=mas[j+1];
}

Re: Посмотрите задачу на С++

Добавлено: 17 мар 2008, 09:06
airyashov
если крайние элементы исключить, т.е. проверить отдельно, то остальное просто

Код: Выделить всё

if ( (mas[i-1]<mas[i]) && (mas[i]<mas[i+1])) 
это нужный элемент
соответственно можно расширить на двумерный

Re: Посмотрите задачу на С++

Добавлено: 17 мар 2008, 15:45
Anton_XXX
Чет я непойму...

if ( (mas[i-1]<mas) && (mas<mas[i+1]))

например, дан одномерный массив: 5 0 1 7 0 6 1 0 5
по идеи, минимальный из неповторяющихся элементов = 6
а твое условие выдает элемент = 1

элемент "1" в этом массиве встречается 2 раза...!

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