2013-10-14 4 views
2

Как удалить целое число из списка, инициализированного int list[9999]? Я знаю, как удалить указанное число из этого списка, указав ключ списка, но мне нужно будет переместить другие элементы влево. Какая альтернатива? Перемещение всех элементов - это очень дорогостоящая операция ЦП, следует ли использовать Связанный список и удалить из памяти этот объект из списка, а остальные элементы - нетронутыми? Спасибо!Удалить элемент из списка целых чисел

+0

Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают и ожидаемые результаты. – bennofs

ответ

4

Если вам нужна постоянная вставка/удаление времени, связанный список в значительной степени требуется, но повторение требуемого элемента по-прежнему будет линейным. Однако может быть лучший способ оптимизировать вашу программу. Вы часто выполняете эту операцию? Можете ли вы выполнить эту операцию реже, изменив структуру вашей программы? ЦП может быстро переместить 39K (наихудший сценарий со 10000 элементами) данных. Вы уверены, что это ваше узкое место?

+0

Я пытаюсь реализовать алгоритм гибридного сортирования, используя min и max и insertion, которые подходят к n * log (n) alg. сложность, но операция перемещения элементов движений больше + n операций. Спасибо за вашу помощь! – LXSoft

+1

ОК. Ну, если вы делаете это по интересным/академическим причинам, тогда вам повезло, но вы должны знать, что это очень хорошо исследованная область. Если у вас нет особых ограничений на входные данные, которые могут быть использованы для ускорения сортировки, возможно, вам лучше использовать существующий алгоритм сортировки вместо того, чтобы пытаться изобрести новый. Поиск Google для алгоритма сортировки - хорошее место для начала. – Brent

+0

Я знаю, что существует почти 10 мощных алгоритмов сортировки, это только для академических целей, нам нужно реализовать алгоритмы, которые достигают сложности n * log (n), и я думаю о некотором уникальном списке разбора и выбираю min и max delete из списка и ther parse снова удалите min + max 100 элементов 250 требуемых запросов 100 * log (100) = 200, я достиг лучшего, что поможет мне в лаборатории, только причина постоянно удаляет элемент из этого списка. Ваш пост помог мне! Еще раз спасибо! – LXSoft

Смежные вопросы