Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2015, 15:51   #1
GreenFirefly
 
Регистрация: 13.07.2015
Сообщений: 6
По умолчанию Как удалить из массива (списка) уникальные элементы

Как удалить из массива уникальные элементы быстрее O(n^2)?
GreenFirefly вне форума Ответить с цитированием
Старый 02.12.2015, 15:59   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

к примеру можно использовать множество (зависит конечно еще от данных)
и тогда за один проход можно узнать какие данные уникальны:

* читаем переменную из массива
* проверяем есть ли она во множестве, если есть удаляем, коль нету - добавляем во множество
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 02.12.2015, 16:01   #3
GreenFirefly
 
Регистрация: 13.07.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
к примеру можно использовать множество
В PowerShell нет множества (set)
Кстати, мне кажется мы так поудаляем наоборот дубликаты.

Последний раз редактировалось GreenFirefly; 02.12.2015 в 16:04.
GreenFirefly вне форума Ответить с цитированием
Старый 02.12.2015, 16:24   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от GreenFirefly Посмотреть сообщение
В PowerShell нет множества (set)
Кстати, мне кажется мы так поудаляем наоборот дубликаты.
да, я что-то не внимательно прочитал условие) обычно же дубликаты удаляют, а вы тут наоборот уникальные)

надо подумать)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 02.12.2015, 16:31   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Какую нибудь сортировку с O(n*log(n)) по величине элемента, запомнив исходный порядковый номер, удаление за один проход из сортированного и обратная сортировка по порядковому номеру. Если порядок не важен 2-ой сортировки не нужно. В любом случае в совокупе O(n*log(n))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый массив из первого массива REztor C# (си шарп) 0 20.06.2015 16:55
Как удалить элементы из списка? С++ Арий Помощь студентам 0 03.06.2015 17:04
Фортран. Удалить из массива нулевые элементы, передвинув на их место следующие элементы без нарушения порядка.. katya2.5 Помощь студентам 0 27.12.2013 21:01
удалить из массива уникальные элементы хочу узнать Помощь студентам 2 26.09.2010 19:22
Как удалить нулевые элементы из массива? Diman_kemNVK Помощь студентам 2 13.04.2010 15:54