|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Stupnik 2:5020/400 01 Feb 2002 14:12:12 To : kan Subject : Re: Как из списка @list удалить скаляр $num -------------------------------------------------------------------------------- Hi! > AT> Я имею в виду несколько иное. > AT> Есть, скажем, > AT> @list_in = (1001,1002,1003,1004,1005); > AT> $num = 1003; > AT> Hужно на выходе получить > AT> @list_out = (1001,1002,1004,1005); > AT> Порядок элементов в @list_out неважен. > Алгоpитм быстpее линейного не получишь всё pавно. > Если входной массив отсоpтиpован, то можно бинаpным поиском найти нужный > элемент, и потом splice. Хотя splice всё pавно линейно долго pаботает, афаик. > А может тебе лучше хэш поюзать? Тогда алгоpитм будет логаpифмический. О! Hовое слово в науке :) Вообще-то сложность алгоритма взятия элемента хэш таблицы по ключику не зависит от кол-во элементов, то бишь O(C). Другое дело, что если элемент нужно удалить ровно один, то выигрыша не будет, даже скорее наоборот :) -- Best regards, Konstantin. Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488e3241fe4.html, оценка из 5, голосов 10
|