Уникальный элемент массива
Целочисленный массив, вывести все числа которые встречаются по одному разу.
Я не прошу готового решения. Сам решить хочу, не получается. Как это реализовать ? Получаестя, каждый элемент массива надо сравнить с другими элементами этого массива ? Если он уникален то его вывести. Придумал вот, вставить такой "счетчик", который увеличивается каждый раз если, какой-то отдельный элемент не равен другому. И если значение счетчика, будет равно "количеству элементов в массиве минус один" то, тот конкретный элемент уникален, и его вывести. Прекрасно понимаю, что решение далеко не оптимальное. Но и оно не хочет работать. Код:
const n=10; |
Цитата:
Код:
const n=10; |
Спасибо) А как еще можно решить эту задачу ? Без счетчика ?
|
Цитата:
Код:
const n=10; |
Технически, счетчик остался - суть программы не изменилась.
Вариант такой: отсортировать массив. Тогда, если соседние элементы равны, имеются повторы. |
Можно, конечно, и так. А это через MaxValue, или можно проще? Но в любом случае - муторное дело. Но если Linka хочет, пусть попробует.
|
В современных реализациях языков имеются готовые массивы сортировщики-сортировка реализуется одной строчкой.
Кроме этого, сортировка имеет меньшую вычислительную сложность, чем двойной перебор, и да по этому поводу есть годный том Кнута. |
Цитата:
Но ко многим. |
Его трехтомник сейчас активно рекомендуют школьникам, конкретнее - тем кто занимается олимпиадами по информатике.
Без знания хотя бы содержания этих книг квалифицированного программиста быть не может. |
Тот же массив, но надо вывести все числа, которые встречаются несколько раз.
Код:
const n=10; З.Ы. А есть в паскале оператор "преждевременного" выхода из цикла ? Или надо использовать GOTO label ? |
Часовой пояс GMT +4, время: 01:17. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.