Во всех делах при максимуме сложностей: В любых делах при максимуме сложностей — Асадов. Полный текст стихотворения — В любых делах при максимуме сложностей
Эдуард Асадов: стихи, полный список всех произведений — Современная библиотека DY9
Эдуард Асадов — Заколдованный круг
017
Ты любишь меня и не любишь его. Ответь: ну не дико ли это, право, Что тут у него есть любое право, А
Эдуард Асадов — Оценка любви
037
Он в гости меня приглашал вчера. — Прошу, по-соседски, не церемониться! И, кстати, я думаю, познакомиться
Эдуард Асадов — Зарянка
014
С вершины громадной сосны спозаранку Ударил горячий, веселый свист. То, вскинувши клюв, как трубу горнист
Эдуард Асадов — Прогулка
022
Мы шли по росистой тропинке вдвоем Под сосен приветственный шорох. А дачный поселок — за домиком дом
Эдуард Асадов — Верховный суд
024
Я окончил новые стихи, Только в сердце — никакого счастья. За какие новые грехи Буду взыскан я «верховной властью»?
Эдуард Асадов — Разные натуры
018
Да, легко живет, наверно, тот, Кто всерьез не любит никого. Тот, кто никому не отдает Ни души, ни сердца своего.
Эдуард Асадов — Орел
099
Царем пернатых мир его зовет. И он как будто это понимает: Всех смелостью и силой поражает И выше туч
Эдуард Асадов — Стихи о чести
040
О нет, я никогда не ревновал, — Ревнуют там, где потерять страшатся. Я лишь порою бурно восставал, Никак
Эдуард Асадов — Моя любовь
044
Ну каким ты владеешь секретом? Чем взяла меня и когда? Но с тобой я всегда, всегда, Днем и ночью, зимой и летом!
Эдуард Асадов — Слёзы
029
Она всё знает, Любит парнишку одного, Пересыхают губы, Как вспомнит про него. Но ходят пересуды, Всё
Эдуард Асадов — Добрый принц
016
Ты веришь, ты ищешь любви большой, Сверкающей, как родник, Любви настоящей, любви такой, Как в строчках
Эдуард Асадов — Сердца моих друзей
037
Пришли друзья. Опять друзья пришли! Ну как же это славно получается: Вот в жизни что-то горькое случается
Эдуард Асадов — Падает снег
016
Падает снег, падает снег — Тысячи белых ежат… А по дороге идёт человек, И губы его дрожат. Мороз под
Эдуард Асадов — Улетают птицы
025
Осень паутинки развевает, В небе стаи будто корабли — Птицы, птицы к югу улетают, Исчезая в розовой дали…
Эдуард Асадов — Отцы и дети
0243
Сегодня я слово хочу сказать Всем тем, кому золотых семнадцать, Кому окрыленных, веселых двадцать, Кому
Эдуард Асадов — Вечная рана
015
Сколько раз получал я на свете раны! Но страшней всех не пули и не ножи, Не осколки. А боль моя постоянно
Эдуард Асадов — Долголетие
021
Как-то раз появилась в центральной газете Небольшая заметка, а рядом портрет Старика дагестанца, что
Эдуард Асадов — В женщине качеств — полным-полно
018
В женщине качеств — полным-полно: Хитрость, любовь, красота, веселье. Женщина в сущности — то же вино
Эдуард Асадов — Всем хоть раз, да изменяли жены
026
Всем хоть раз, да изменяли жены. А ему — ни разу. В чем секрет? А секрета никакого нет: Он был холост.
Эдуард Асадов — До чего ж порой, сограждане
015
До чего ж порой, сограждане, тщеславны вы: Ударения, и те менять готовы! Так поэты и художники Ивaновы
Эдуард Асадов — Златоуст
012
О, как же я счастлив с тобой, родная! Душа, и улыбка, и голос твой — Все праздник! И я вообще не знаю
Эдуард Асадов — Когда друзья становятся начальством
017
Когда друзья становятся начальством, Меня порой охватывает грусть. Я, словно мать, за маленьких страшусь
Эдуард Асадов — Любое дело делайте с душой
022
Любое дело делайте с душой, Работайте в упорстве и горенье, Чтобы никто вас где-то за спиной Не упрекнул
Эдуард Асадов — Мне нравится с берега ранней весной
012
Мне нравится с берега ранней весной, Раздевшись, в студеную воду нырнуть. Обдаст тебя сразу огонь ледяной.
Эдуард Асадов — Наивность
013
Сколько я прочел на свете строк О любви, как плетью оскорбленной, О любви, безжалостно сожженной, Из
Эдуард Асадов — О плюсах и минусах в человеке
019
О плюсах и минусах в человеке Суди по тому, как он держит слово: Правдив, значит, плюсы — его основа
Эдуард Асадов — Осенние строки
023
Багряные листья, словно улитки, Свернувшись, на влажной земле лежат. Дорожка от старой дачной калитки
Эдуард Асадов — Подмосковный рассвет
016
Кристине Асадовой До чего рассвет сегодня звонок В пенисто-вишневых облаках. Он сейчас, как маленький
Эдуард Асадов — Разговор с небожителями
011
Есть гипотеза, что когда-то, В пору мамонтов, змей и сов, Прилетали к нам космонавты Из далеких чужих миров.
Эдуард Асадов — Семь раз отмерь и только раз отрежь
020
«Семь раз отмерь и только раз отрежь» Все это верно. Но сказку серьезно: Пока семь раз ты эту кашу ешь
Эдуард Асадов — Старый Газик
016
Вокруг поляны в песенном разливе Как новенький стоит березнячок. А в стороне, под липой, говорливо Тугой
Эдуард Асадов — Ты говоришь, что счастье невозможно
018
Ты говоришь, что счастье невозможно, Препятствий тьма и все ужасно сложно. А я считаю: если б мы любили
Эдуард Асадов — Ухожу от мужа! Надоело!
031
— Ухожу от мужа! Надоело! — Но скажи, родная, отчего? — Он — тиран! Он хочет, чтоб я ела То, что я готовлю для него!
Эдуард Асадов — Хочу понять
015
Верить можно лишь в то, что всегда понятно. В непонятное как же возможно верить? Непонятное, правда
Эдуард Асадов — Шуточная игра слов
021
Нет выхода! — вздыхают иногда. Безвыходность — сплошная ерунда. Кто выхода в печалях не найдет, Пусть
Эдуард Асадов — Ах, как все относительно в этом мире
036
Ах, как все относительно в мире этом! Вот студент огорченно глядит в окно, На душе у студента темным-темно
Эдуард Асадов — Сердечная история
041
Сто раз решал он о любви своей Сказать ей твердо. Все как на духу! Но всякий раз, едва встречался с ней
Эдуард Асадов — Когда мне говорят о красоте
058
Когда мне говорят о красоте Восторженно, а иногда влюблено, Я почему-то, слушая, невольно Сейчас же вспоминаю о тебе.
Эдуард Асадов — Дачная шутка
045
Красновидовские зори, Лес, цветы да тишина, Слева Горин, справа Зорин, Посредине — Шукшина.
Эдуард Асадов — Звездный барс
030
Трепетным песенно-звонким утром Птиц заглушает то рык, то вой. Это меж Гангом и Брахмапутрой В джунглях
Эдуард Асадов — Разговор по существу
035
— Ты на меня рассердился снова, Назвал недотрогой, достал табак, А я… я на все для тебя готова, Вот женимся
Эдуард Асадов — Дружеский совет
071
Когда ты решишься в любви открыться Однажды и навсегда, Возможно, вначале она смутится И сразу не скажет «Да».
Эдуард Асадов — Сколько лет мы не виделись с вами
036
Сколько лет мы не виделись с вами — Даже страшно уже считать! Как в упряжке с лихими конями, Прогремели
Эдуард Асадов — Пеликан
046
Смешная птица пеликан! Он грузный, неуклюжий, Громадный клюв как ятаган, И зоб — тугой как барабан, Набитый
Эдуард Асадов — Ревность
040
Сдвинув брови, твердыми шагами Ходит парень возле перекрестка. В этот вечер под его ногами Снег хрустит
Эдуард Асадов — Ты далеко сегодня от меня
044
Ты далеко сегодня от меня И пишешь о любви своей бездонной, И о тоске-разлучнице бессонной, Точь-в-точь
Эдуард Асадов — Вечная истина
031
Если враг на тебя нацелит рога, Обозлён твоей славой иль знаний кругом, Чем смести эту ненависть, как снега?
Эдуард Асадов — Именем совести
076
Какие б ни грозили горести И где бы ни ждала беда, Не поступайся только совестью Ни днем, ни ночью, никогда!
Эдуард Асадов — В талантливых строчках всегда стократно
042
В талантливых строчках всегда стократно И мыслей, и чувств полыхает свет, А там, где ни чувств и ни мыслей
Эдуард Асадов — Письмо с фронта
032
Мама! Тебе эти строки пишу я, Тебе посылаю сыновний привет, Тебя вспоминаю, такую родную, Такую хорошую
«Какое ваше любимое стихотворение? » — Яндекс Кью
ГлавнаяСообществаНапишите.
ЛитератураПоэзияСтихи
Алексей Викторович 990Z»>9 сентября 2021 ·578На Кью задали 2 похожих вопросаАнастасия Берлетова
Делюсь своими мыслями и прожитым опытом. Начинающий психолог. · 11 сент 2021
Мне нравится очень этот:
Сергей Есенин
Не жалею, не зову, не плачу…
Не жалею, не зову, не плачу,
Все пройдет, как с белых яблонь дым.
Увяданья золотом охваченный,
Я не буду больше молодым.
Ты теперь не так уж будешь биться,
Сердце, тронутое холодком,
И страна березового ситца
Не заманит шляться босиком.
Дух бродяжий! ты все реже, реже
Расшевеливаешь пламень уст
О моя утраченная свежесть,
Буйство глаз и половодье чувств.
Я теперь скупее стал в желаньях,
Жизнь моя? иль ты приснилась мне?
Словно я весенней гулкой ранью
Проскакал на розовом коне.
Все мы, все мы в этом мире тленны,
Тихо льется с кленов листьев медь…
Будь же ты вовек благословенно,
Что пришло процвесть и умереть
Алексей Викторович
Аренда спецтехники https://ooo-cct. ru/ · 9 сент 2021 · ooo-cct.ru
Владей собой среди толпы смятенной, Тебя клянущей за смятенье всех. Верь сам в себя наперекор вселенной, И маловерным отпусти их грех. Пусть час не пробил, жди, не уставая, Пусть лгут лжецы, не снисходи до них. Умей прощать и не кажись, прощая, Великодушней и мудрей других. Умей мечтать, не став рабом мечтанья, И мыслить, мысли не обожествив. Равно встречай успех и… Читать далее
Елена Левщанова
Филолог. Учитель русского языка. Репетитор. · 4 окт 2021
Владимир Маяковский Лиличка! Дым табачный воздух выел. Комната — глава в крученыховском аде. Вспомни — за этим окном впервые руки твои, исступленный, гладил. Сегодня сидишь вот, сердце в железе. День еще — выгонишь, можешь быть, изругав. В мутной передней долго не влезет сломанная дрожью рука в рукав. Выбегу, тело в улицу брошу я. Дикий, обезумлюсь, отчаяньем… Читать далее
Мария Евстюхина
Интересы: саморазвитие, книги, путешествия, отношения, планирование, рукоделие, фильмы.
Их очень много. У меня уже 2 блокнота есть, в которые я записываю любимые стихотворения. Мне нравятся Асадов, Рождественский, Лермонтов. Самое любимое стихотворение: В любых делах при максимуме сложностей Подход к проблеме все-таки один: Желанье — это множество возможностей, А нежеланье — множество причин. Э.Асадов Читать далее
ЛучшийАнатолий Жигулин
Я не фанатик, не политик, не Либерал, не Коммунист. Не «крутизна» я и не «нытик» -… · 9 сент 2021
Извините пожалуйста, но Ваш вопрос нуждается в определённом уточнении. Если Вы спрашиваете о моих Личных стихах, то пожалуйста. Только не судите строго, я не поэт, мне просто бывает интересно и от Души, и для Души — просто для себя. Анатолий Жигулин 3 окт 2020 67 лет, Россия Наши ДЕТИ — это РАДОСТЬ ! Это СЧАСТЬЕ на всегда ! «ИХ» — господь своею Волей «Нам» иметь дал -… Читать далее
Алексей Викторович
9 сентября 2021Браво!👏
Светлана Svetlaya
Ключом ко всякому знанию является вопросительный знак. · 9 сент 2021
Любимых стихов достаточно. Но особенно запали в душу со школьной скамьи «Видения на холме» Николая Рубцова: Взбегу на холм и упаду в траву. И древностью повеет вдруг из дола! Засвищут стрелы будто наяву, Блеснет в Глаза кривым ножом монгола! Пустынный свет на звездных берегах И вереницы птиц твоих, Россия, Затмит на миг в крови и жемчугах Тупой башмак скуластого Батыя…. Читать далее
Сергей Обухов
Астро Нумеро Психолог (samouchka). Печник пространствотворящий. Печник философии и… · 12 сент 2021
… Вы — Властелины размышлений, Участниками разных мщений — являетесь. Но и при всем желании, никто из Вас не Ближний и не Крайний. Где Счастье прячется годами? Оно по Жизни ходит без следов. И создаётся только Нами, Без соучастия БОГОВ. Серёжа Печник. Удачи. Читать далее
Алексей Викторович
13 сентября 2021Весьма глубокомысленное стихотворение, хоть и не очень складное
Александр Москалёв
Пенсионер.Интерес — как у Остапа Бендера,узнать,в чём смысл жизни. · 9 сент 2021
Как удивительны они, Загадки мудрые природы: Ползут всё медленнее дни, Но всё быстрее летят годы. И остаётся только мне Воспоминаний грустный шёпот, Вечерняя луна в окне И(что уж там) похмелья опыт. Но не такой уж я урод! Тоску-печаль с себя я скину И в декабре под Новый год Подснежников найду корзину. Читать далее
Алексей Викторович
9 сентября 2021😀 Интересное стихотворение. Кто автор, если не секрет?
Книжный ум
9 сент 2021
У врат обители святой Стоял просящий подаянья Бедняк иссохший, чуть живой От глада, жажды и страданья. Куска лишь хлеба он просил, И взор являл живую муку, И кто-то камень положил В его протянутую руку. Так я молил твоей любви С слезами горькими, с тоскою; Так чувства лучшие мои Обмануты навек тобою! М.Ю. Лермонтов Читать далее
Алексей Викторович
9 сентября 2021Очень красивое стихотворение!
1 ответ скрыт(Почему?)
Ответы на похожие вопросыКакое ваше любимое стихотворение? — 10 ответов, задан 718Z»>19 августа 2019Анастасия Байдуллина
Пишу стихи, рассказы. Увлекаюсь психологией. Занимаюсь танцами. Увлекаюсь гимнастикой… · 6 мая 2022
Самое мое любимое стихотворение Филатова.
«Тот клятый год, уж много лет.
Я иногда сползал с больничной койки.
Сгребал все свои обломки и осколки,
И свой реконструировал скелет.
Я крал себя у чутких медсестер,
Ноздрями чуя острый запах воли,
Я убегал к двухлетней внучке Оле.
Туда, где жизнью пахнущий простор.
Мы с Олей отправлялись на любимые качели
Глушили сок, мороженое ели.
Глазели на гуляющих собак.
Аттракционов было пруд пруди,
Но день сгорал, и солнце остывало.
И Оля уставала, отставала.
И тихо ныла «деда, погоди»
Я возращался в стен больничных гости,
Но и в палате слышал Олин голос.
Дай руку, деда погоди.
И я годил, годил сколь было сил,
А на соседних койках не годили.
Хирели, сохли, чахли, уходили,
Потому что их никто погодить не попросил.
Когда я чую жжение в груди.
Я вижу, как с другого края поля,
Ко мне несется маленькая Оля,
С истошным криком, «деда, погоди»
И я гожу, я все еще гожу.
И, кажется, стреплю любую муку,
Пока ту крохотную руку,
В измученной руке своей еще держу
mjolner mj
Студент 3 курса · 20 авг 2019
И встретишь ты, когда не ждешь, И обретешь, не там где ищешь..
Судьба нам лишних не дает.
Все к нам приходят для чего-то…
Есть те, кто жизнь с тобой пройдет,
Иные — лишь до поворота!..
Есть те, кто сделает глоток
Лишь в чайной паузе, случайно.
И дальше побежит поток
С какой-то нераскрытой тайной…
Есть те, что оставляют след
С рубцами в памяти надолго.
Но вера выведет на свет,
Убрав ненужные осколки…
Всему свой час… И ты найдешь
Свой храм.
И встретишь ты, когда не ждешь,
И обретешь, не там где ищешь…
(с) Марина Волнорезова
Какое ваше любимое стихотворение? — 10 ответов, заданЕвгений Великолепный
Забанен навсегда вследствие происков ЛГБТ-агентов · 19 авг 2019
В кругу облаков, высоко
Чернокрылый воробей,
Трепеща и одиноко,
Парит быстро над землей;
Он летит ночной порой,
Лунным светом освещенный
И, ничем неудрученный,
Все он видит под собой.
Гордый, хищный, разъяренный
И летая словно тень.
В след несется ястреб жадный.
Воробей тому счастливый,
Улетая в дальность прочь…
Но ведь ястреб быстрокрылый
Увидит его небось.
Его мелких крыл журчанье
Нарушает тишину.
Ястреб носится отчайно,
Но не найдет путь к нему.
Сколько же осталась фут
Пролететь и где заснуть
Ему придется наедине.
В лесу ль. В роскошной ли долине
Увы, придется ль отдохнуть?
Александр С.
Разбираюсь в темах — политология, социология, история. Увлекаюсь как любитель — история… · 19 авг 2019
В ЗАСТЕНКЕ (К. Бальмонт, 1903 г.)
Переломаны кости мои.
Я в застенке. Но чу! В забытьи,
Слышу, где-то стремятся ручьи.
Так созвучно, созвонно, в простор,
Убегают с покатостей гор,
Чтоб низлиться в безгласность озёр.
Я в застенке. И пытка долга.
Но мечта мне моя дорога.
В палаче я не вижу врага.
Он ужасен, он странен, как сон,
Он упорством моим потрясён.
Я ли мученик? Может быть, он?
Переломаны кости. Хрустят.
Но горит напряжённый мой взгляд.
О, ручьи говорят, говорят!
lthtdj
8 окт 2020
Одно из самых любимых «Отступление в Арденнах» Владимира Лившица
Ах как нам было весело,
Когда швырять нас начало!
Жизнь ничего не весила,
Смерть ничего не значила.
Нас оставалось пятеро
В промозглом блиндаже.
Командованье спятило
И драпало уже.
Мы из консервной банки
По кругу пили виски,
Уничтожали бланки,
Приказы, карты, списки,
И, отдаленный слыша бой,
Я — жалкий раб господен —
Впервые был самим собой,
Впервые был свободен!
Я был свободен, видит бог,
От всех сомнений и тревог,
Меня поймавших в сети,
Я был свободен, черт возьми,
От вашей суетной возни
И от всего на свете!..
Я позабуду мокрый лес,
И тот рассвет, — он был белес,
И как средь призрачных стволов
Текло людское месиво,
Но не забуду никогда,
Как мы срывали провода,
Как в блиндаже приказы жгли,
Как все крушили, что могли,
И как нам было весело!
Какое ваше любимое стихотворение? — 10 ответов, заданkitt k.
26 июн 2020
Дочка очень любит читать стихи. Больше всего ей нравятся вот такие стихи про подарки, многие из этих стихов знает наизусть. Так что советую и вам прочитать эти стихи, они увлекательные и красивые.
Какое ваше любимое стихотворение? — 10 ответов, заданkitt k.
24 июн 2020
Мне очень понравились стихи про июнь. Теперь часто в свободное время читаю дочке эти стихи, это помогает ей развивать память. Советую и вам прочитать такие стихи, они красивые и увлекательные.
Какое ваше любимое стихотворение? — 10 ответов, заданАнонимный ответ20 августа 2019
Мой друг, есть радость и любовь,
Есть всё, что будет вновь и вновь,
Хотя в других сердцах, не в наших.
Но, милый брат, и я, и ты —
Мы только грёзы Красоты,
Мы только капли в вечных чашах
Неотцветающих цветов,
Непогибающих садов.
Константин Бальмонт
Какое ваше любимое стихотворение? — 10 ответов, задан 718Z»>19 августа 2019Инга Иванова
Здравствуйте. Я уже писала, что у меня нет доступа к ответам на заданные вопрос в этом… · 19 авг 2019
Редьярд Киплинг «Если» в переводе С.Я. Маршака и В.П. Бетаки.
Космически-глубокий смысл этого стихотворения, как выстрел, поражает сознание человека.
Какое ваше самое любимое стихотворение? — 2 ответа, задан ПервыйКатя Касимова
Да ничего я не знаю. Просто фильмы люблю и в театре играю. · 1 авг 2018
Обожаю поэзию, и вот это моё любимое (хотя выбрать было сложно)
Иосиф Бродский
«Дорогая»
.
Дорогая, я вышел сегодня из дому поздно вечером
подышать свежим воздухом, веющим с океана.
Закат догорал в партере китайским веером,
и туча клубилась, как крышка концертного фортепьяно.
Четверть века назад ты питала пристрастье к люля и к финикам,
рисовала тушью в блокноте, немножко пела,
развлекалась со мной; но потом сошлась с инженером-химиком
и, судя по письмам, чудовищно поглупела.
Теперь тебя видят в церквях в провинции и в метрополии
на панихидах по общим друзьям, идущих теперь сплошною
чередой; и я рад, что на свете есть расстоянья более
немыслимые, чем между тобой и мною.
Не пойми меня дурно. С твоим голосом, телом, именем
ничего уже больше не связано; никто их не уничтожил,
но забыть одну жизнь — человеку нужна, как минимум,
еще одна жизнь. И я эту долю прожил.
Повезло и тебе: где еще, кроме разве что фотографии,
ты пребудешь всегда без морщин, молода, весела, глумлива?
Ибо время, столкнувшись с памятью, узнает о своем бесправии.
Я курю в темноте и вдыхаю гнилье отлива.
java — сложность получения/ввода HashMap
спросил
Изменено 6 месяцев назад
Просмотрено 236 тысяч раз
Мы привыкли говорить, что HashMap
get/put
операции выполняются за O(1). Однако это зависит от реализации хэша. Хэш объекта по умолчанию на самом деле является внутренним адресом в куче JVM. Уверены ли мы, что это достаточно хорошо, чтобы утверждать, что получить/поставить
— это O(1)?
Доступная память — еще одна проблема. Насколько я понимаю из javadocs, коэффициент загрузки HashMap
должен быть 0,75. Что делать, если у нас не хватает памяти в JVM и коэффициент загрузки превышает лимит?
Итак, похоже, что O(1) не гарантируется. Это имеет смысл или я что-то упускаю?
- java
- структуры данных
- хэш-карта
- теория сложности
Это зависит от многих вещей. Это , обычно O(1), с приличным хэшем, который сам является постоянным временем… но у вас может быть хеш, который требует много времени для вычисления, и , если в хеш-карте есть несколько элементов, которые возвращают тот же хэш-код, получить
придется перебирать их, вызывая равно
для каждого из них, чтобы найти совпадение.
В худшем случае HashMap
имеет O(n) поиск из-за обхода всех записей в одном и том же хеш-сегменте (например, если все они имеют одинаковый хеш-код). К счастью, по моему опыту, такой наихудший сценарий не так часто встречается в реальной жизни. Так что нет, O (1), конечно, не гарантируется, но обычно это то, что вы должны предполагать при рассмотрении того, какие алгоритмы и структуры данных использовать.
В JDK 8, HashMap
был изменен таким образом, что если ключи можно сравнивать для упорядочивания, то любое плотно заполненное ведро реализуется в виде дерева, так что даже если имеется много записей с одинаковым хэш-кодом, сложность O (log n). Это может вызвать проблемы, если у вас есть тип ключа, где равенство и порядок, конечно, различны.
И да, если у вас недостаточно памяти для хеш-карты, у вас будут проблемы… но это будет так, какую бы структуру данных вы ни использовали.
9 Как уже упоминалось, хэш-карты в среднем составляют O(n/m)
, если n
— количество элементов, а m
— размер. Также было упомянуто, что в принципе все это может свернуть в односвязный список с O(n)
запросами времени. (Все это предполагает, что вычисление хеша происходит за постоянное время).
Однако редко упоминается, что с вероятностью не менее 1-1/n
(то есть для 1000 элементов вероятность 99,9 %) самая большая корзина не будет заполнена более чем на O(logn)
! Отсюда соответствие средней сложности бинарных деревьев поиска. (И константа хорошая, более строгая граница равна (log n)*(m/n) + O(1)
).
Все, что требуется для этого теоретического ограничения, — это использование достаточно хорошей хеш-функции (см. Википедию: Универсальное хеширование. Это может быть так же просто, как a*x>>m
). И, конечно же, тот, кто дает вам значения для хеширования, не знает, как вы выбрали свои случайные константы.
TL;DR: с очень высокой вероятностью наихудшая сложность get/put хэш-карты составляет O(logn)
.
Я согласен с:
- общая амортизированная сложность O(1)
- неправильная реализация
hashCode()
может привести к множественным коллизиям, что означает, что в худшем случае каждый объект попадает в одно и то же ведро, таким образом, O( N ), если каждое ведро поддерживаетсяСписок
. - начиная с Java 8,
HashMap
динамически заменяет узлы (связанный список), используемые в каждом сегменте, на TreeNodes (красно-черное дерево, когда список становится больше 8 элементов), что приводит к худшей производительности O( logN ).
Но это , а не полная правда, если мы хотим быть на 100% точными. Реализация hashCode()
и тип ключа Object
(неизменяемый/кэшированный или являющийся коллекцией) также могут строго влиять на сложность в реальном времени.
Предположим, что возможны следующие три случая:
-
HashMap
-
HashMap
-
HashMap<список
, V>
У них одинаковая сложность? Ну, амортизированная сложность 1-го, как и ожидалось, O (1). Но в остальном нам также нужно вычислить hashCode()
элемента поиска, что означает, что нам, возможно, придется пройтись по массивам и спискам в нашем алгоритме.
Предположим, что размер всех вышеперечисленных массивов/списков равен k .
Тогда HashMap
и HashMap
будут иметь O(k) амортизированную сложность и, аналогично, O( k + logN ) в худшем случае в Java8., V>
*Обратите внимание, что использование ключа String
является более сложным случаем, поскольку он неизменяем, а Java кэширует результат hashCode()
в частной переменной хэш
, поэтому он вычисляется только один раз.
/** Кэшировать хеш-код строки */ приватный хэш; // По умолчанию 0
Но вышеприведенное также имеет свой собственный худший случай, потому что реализация Java String.hashCode()
проверяет, является ли hash == 0
перед вычислением hashCode
. Но, эй, есть непустые строки, которые выводят хэш-код
из нуля, например «f5a5a608», см. здесь, и в этом случае запоминание может быть бесполезным.
Я не уверен, что хэш-код по умолчанию является адресом — я некоторое время назад читал исходный код OpenJDK для генерации хэш-кода и помню, что это было что-то более сложное. Возможно, это еще не то, что гарантирует хорошее распространение. Однако это в какой-то степени спорно, так как немногие классы, которые вы будете использовать в качестве ключей в хэш-карте, используют хэш-код по умолчанию — они предоставляют свои собственные реализации, которые должны быть хорошими.
Кроме того, вы можете не знать (опять же, это основано на чтении исходного кода — это не гарантируется), так это того, что HashMap перемешивает хэш перед его использованием, чтобы смешать энтропию со всего слова с нижними битами, что где это необходимо для всех, кроме самых огромных хэш-карт. Это помогает работать с хэшами, которые сами по себе этого не делают, хотя я не могу вспомнить ни одного распространенного случая, в котором вы могли бы это увидеть.
Наконец, когда таблица перегружена, она вырождается в набор параллельных связанных списков — производительность становится O(n). В частности, количество пройденных ссылок будет в среднем вдвое меньше коэффициента загрузки.
1Операция HashMap зависит от реализации hashCode. Для идеального сценария скажем, хорошая реализация хэша, которая обеспечивает уникальный хэш-код для каждого объекта (без коллизии хэшей), тогда лучший, худший и средний сценарий будет O (1). Давайте рассмотрим сценарий, в котором плохая реализация hashCode всегда возвращает 1 или такой хеш, который имеет коллизию хэшей. В этом случае временная сложность будет O(n).
Теперь перейдем ко второй части вопроса о памяти, тогда да, JVM позаботится об ограничении памяти.
На практике это O(1), но на самом деле это ужасное и математически бессмысленное упрощение. Обозначение O() говорит о том, как ведет себя алгоритм, когда размер задачи стремится к бесконечности. 32-битных элементов, то отдельные элементы будут описаны более чем 32-битными.
Количество битов, необходимых для описания отдельных элементов, равно log(N), где N — максимальное количество элементов, поэтому get и put на самом деле равны O(log N).
Если вы сравните его с набором деревьев, который равен O(log n), то набор хэшей равен O(long(max(n)) и мы просто чувствуем, что это O(1), потому что в определенной реализации max( n) фиксирован, не изменяется (размер объектов, которые мы храним, измеряется в битах), а алгоритм расчета хэш-кода быстр
Наконец, если бы поиск элемента в любой структуре данных был O(1), мы бы создали информация из воздуха. Имея структуру данных из n элементов, я могу выбрать один элемент n по-разному. При этом я могу кодировать логарифм (n) бит информации. Если я могу закодировать это в нулевом бите (это то, что O ( 1) значит) затем я создал алгоритм ZIP с бесконечным сжатием.
2Временная сложность Java HashMap -------------------------------- получить (ключ) и содержит (ключ) и удалить (ключ) В лучшем случае В худшем случае HashMap до Java 8, с использованием сегментов LinkedList 1 O(n) HashMap после Java 8, с использованием сегментов LinkedList 1 O(n) HashMap после Java 8, с использованием сегментов бинарного дерева 1 O(log n) put(key, value) В лучшем случае В худшем случае HashMap до Java 8 с использованием сегментов LinkedList 1 1 HashMap после Java 8 с использованием сегментов LinkedList 1 1 HashMap после Java 8, с использованием сегментов бинарного дерева 1 O(log n)
Подсказки:
До
Java 8
,HashMap
использоватьLinkedList
ведраПосле
Java 8
,HashMap
будет использовать либо сегментыLinkedList
, либо сегментыBinary Tree
в зависимости от размера сегмента.если (размер корзины > TREEIFY_THRESHOLD[8]):
treeifyBin: корзина будет сбалансированным бинарным красно-черным деревом
если (размер сегмента <= UNTREEIFY_THRESHOLD[6]):
untreeify: ведро будет LinkedList (обычный режим)
Проще говоря, если каждое ведро содержит только один узел, то временная сложность будет O(1) . Если ведро содержит более одного узла, их временная сложность будет O(размер связанного списка) . который всегда эффективнее, чем O(n) .
, следовательно, мы можем сказать, что в среднем случае временная сложность функции put(K,V):
узлов (n)/бакетов (N) = λ (лямбда)
Пример: 16/16 = 1
Временная сложность будет O(1)
1Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Временные и пространственные сложности всех алгоритмов сортировки
Изучение временных и пространственных сложностей различных алгоритмов сортировки важно для любого разработчика программного обеспечения, чтобы пройти собеседование в любой технологической компании. Эти знания пригодятся, когда вам нужно решить, какой подход выбрать для решения той или иной проблемы.
В этой статье мы обсудим:
- Что такое временная сложность?
- Что такое космическая сложность?
- Почему важны временные и пространственные сложности?
- Временные и пространственные сложности распространенных алгоритмов сортировки
- Памятка
плюсы и минусы Перейдите на страницу Узнать , чтобы узнать больше!
Что такое временная сложность?
Временная сложность алгоритма описывает количество времени, которое требуется для выполнения алгоритма с точки зрения характеристик входных данных.
Другими словами, мы можем сказать, что временная сложность — это приблизительное количество элементарных операций (арифметических/побитовых инструкций, обращения к памяти, потока управления и т. д.), выполняемых в программе. Предполагается, что каждая элементарная операция выполняется за фиксированное количество времени.
Ниже приведены различные обозначения, используемые для выражения временной сложности:
- Обозначение Big Oh, O: Обозначение Ο(n) используется для выражения верхней границы времени выполнения алгоритма.
- Обозначение Omega, Ω: Обозначение Ω(n) используется для выражения нижней границы времени выполнения алгоритма.
- Тета-обозначение, θ: Обозначение θ(n) находится между O(n) и Ω(n) и используется для выражения точного асимптотического поведения времени выполнения алгоритма.
Как правило, производительность алгоритма сильно зависит от входных данных и их типа; поэтому обычно используется наихудшая временная сложность, потому что иногда невозможно предсказать все изменения во входных данных.
Что такое космическая сложность?
Объемная сложность алгоритма описывает объем памяти, который требуется алгоритму для работы, с точки зрения характеристик входных данных. Другими словами, мы можем сказать, что объемная сложность — это приблизительное общее дополнительное пространство, необходимое программе для работы.
Почему так важны временные и пространственные сложности?
В реальных приложениях мы ограничены физической памятью и вычислительной мощностью систем, на которых мы собираемся работать. Именно здесь пространственные и временные сложности становятся важными, потому что мы никогда не хотим запускать функцию или процесс, которые превышают объем пространства, которым располагает система в любой момент времени.
Мы также не хотим, чтобы наши функции выполнялись так долго, что наши приложения зависали и замедлялись. Поэтому мы склонны выбирать алгоритм, который лучше всего подходит для конкретной задачи и соответствует нашим ограничениям пространства и времени.
Временные и пространственные сложности общих алгоритмов сортировки
Мы рассмотрели временные и пространственные сложности 9 популярных алгоритмов сортировки: пузырьковая сортировка, сортировка выбором, сортировка вставками, сортировка слиянием, быстрая сортировка, сортировка кучей, сортировка подсчетом, Radix Sort и Bucket Sort.
1. Пузырьковая сортировка
При пузырьковой сортировке мы сравниваем каждую соседнюю пару. Если они не в правильном порядке, мы меняем их местами. Мы продолжаем повторять предыдущий шаг до тех пор, пока перестановки не понадобятся, что указывает на то, что все элементы отсортированы.
Временная сложность:- Худший случай: O(n2)
Когда массив отсортирован в обратном порядке, мы перебираем массив (n — 1) раз. В первой итерации мы делаем (n — 1) свопов, (n — 2) во второй и так далее до последней итерации, где мы делаем только один своп. Таким образом, общее количество свопов составляет n * (n — 1) / 2.
- Средний случай: O(n2)
n2 / 4, что снова равно O(n2).
- Наилучший случай: O(n)
В первой итерации массива, если мы не выполняем никакой замены, мы знаем, что массив уже отсортирован, поэтому прекращаем сортировку, поэтому временная сложность оказывается равной быть линейным.
Сложность пространства:Поскольку мы используем только постоянный объем дополнительной памяти помимо входного массива, сложность пространства равна O(1).
2. Сортировка выборомСортировка выбором — это простой алгоритм сортировки, который делит массив на две части: подмассив уже отсортированных элементов и подмассив оставшихся элементов, подлежащих сортировке. Отсортированный подмассив изначально пуст. Мы перебираем массив (n — 1) раз. На каждой итерации мы находим наименьший элемент из несортированного подмассива и помещаем его в конец отсортированного подмассива.
Временная сложность: Худший случай = средний случай = лучший случай = O(n2)
Мы выполняем одинаковое количество сравнений для массива любого заданного размера.
В первой итерации мы выполняем (n — 1) сравнений, (n — 2) во второй и так далее до последней итерации, где мы выполняем только одно сравнение. Таким образом, общее количество сравнений составляет n * (n — 1) / 2. Количество выполненных обменов не превышает n — 1. Таким образом, общая временная сложность является квадратичной.
Сложность пространства:Поскольку мы не используем никакой дополнительной структуры данных, кроме входного массива, сложность пространства составляет O(1).
3. Сортировка вставками
Как и сортировка выбором, алгоритм сортировки вставками также делит массив на две части: подмассив уже отсортированных элементов и подмассив оставшихся элементов, подлежащих сортировке. Отсортированный подмассив изначально содержит только первый элемент массива. Мы перебираем каждый из оставшихся элементов и помещаем их в правильное положение в отсортированном подмассиве.
Временная сложность:- Худший случай: O(n2)
сделать это наихудшая временная сложность сортировки вставками.
- Средний случай: O(n2)
Когда элементы массива расположены в случайном порядке, среднее время выполнения равно O(n2 / 4) = O(n2).
- Лучший случай: O(n)
Когда мы инициируем сортировку вставками в уже отсортированном массиве, каждый элемент сравнивается только с его предшественником, поэтому для сортировки уже отсортированного массива из n элементов требуется n шагов.
Сложность пространства:Поскольку мы используем только постоянный объем дополнительной памяти помимо входного массива, сложность пространства составляет O(1).
4. Сортировка слиянием
При сортировке слиянием мы делим несортированный массив на n подмассивов, каждый из которых имеет размер один, которые тривиально можно считать отсортированными. Затем мы многократно объединяем отсортированные подмассивы, чтобы создать новые отсортированные подмассивы, пока не останется только один отсортированный массив размера n.
Временная сложность: Наихудший случай = средний случай = лучший случай = O(n log n)
Сортировка слиянием выполняет одинаковое количество операций для любого входного массива заданного размера.
В этом алгоритме мы продолжаем рекурсивно делить массив на два подмассива, что создаст O(log n) строк, где каждый элемент присутствует в каждой строке ровно один раз.
Для каждой строки требуется O(n) времени, чтобы объединить каждую пару подмассивов. Таким образом, общая временная сложность становится O (n log n).
Поскольку мы используем вспомогательный массив размером не более n для хранения объединенного подмассива, сложность пространства составляет O(n).
5. Быстрая сортировка
Быстрая сортировка — относительно более сложный алгоритм. Он использует стратегию «разделяй и властвуй», чтобы разделить массив на два подмассива. Мы выбираем элемент с именем pivot, затем помещаем его в правильный индекс, а затем переупорядочиваем массив, перемещая все элементы меньше, чем точка поворота, влево, а все элементы больше, чем вправо.
Затем мы рекурсивно сортируем подмассивы этих подмассивов до тех пор, пока не будет отсортирован весь массив. Эффективность алгоритма быстрой сортировки сильно зависит от выбора опорного элемента.
Временная сложность:- Худший случай: O(n2)
самый элемент в качестве точки поворота временная сложность становится квадратичной, поскольку в таких случаях разделение массива приводит к сильно несбалансированным подмассивам.
Также, когда в массиве много одинаковых элементов, оптимальное разбиение становится затруднительным, что приводит к квадратичной временной сложности.
- Средний и лучший случай: O(n log n)
Лучший случай для быстрой сортировки происходит, когда мы каждый раз успешно выбираем медианный элемент для разбиения. Такое разбиение позволяет нам каждый раз делить массив пополам.
Мы почти всегда можем избежать наихудшего случая в быстрой сортировке, выбрав соответствующую опорную точку. Добиться этого можно разными способами:
- Выбрать опорную точку из середины массива
- Принять случайный выбор опорных точек
- Взять медиану трех кандидатов на опорную точку, т. е. выбрать медиану первого, среднего и последнего элементов массива массив в качестве опоры.
Эти методы в среднем дают почти одинаковое разбиение массива. Таким образом, средняя временная сложность быстрой сортировки практически становится O (n log n).
Хотя быстрая сортировка не использует вспомогательное пространство для хранения элементов массива, дополнительное пространство требуется для создания кадров стека в рекурсивных вызовах.
- Наихудший случай: O(n)
Это происходит, когда опорный элемент является наибольшим или наименьшим элементом массива в каждом рекурсивном вызове. Размер подмассива после разбиения будет n-1 и 1. В этом случае размер рекурсивного дерева будет n.
- Лучший случай: O(log n)
Это происходит, когда правильная позиция опорного элемента в секционированном массиве каждый раз находится посередине. Размер подмассивов будет вдвое меньше размера исходного массива. В этом случае размер рекурсивного дерева будет O(log n).
При сортировке кучей мы преобразуем массив в кучу. Затем мы продолжаем извлекать максимальный элемент из кучи и размещать его соответствующим образом. Сортировка кучей восстанавливает кучу после каждого извлечения.
Наихудший случай = Средний случай = Лучший случай = O(n log n)
такой же.
Процесс извлечения в структуре кучи с n элементами занимает логарифмическое время, O(log n). Когда в куче n элементов, извлечение занимает O(log n) времени, затем остается (n — 1) элементов, следующее извлечение занимает O(log (n — 1)), и так далее, пока не останется только один элемент в куче, где извлечение занимает O (log 1) времени.
Общая временная сложность составляет O(log n) + O(log (n -1)) + … + O(1) = O(log (n!)). Временная сложность O(n log n) лучше всего представляет эту сложность в упрощенной форме.
Поскольку мы не используем никаких дополнительных структур данных, сортировка кучей является алгоритмом сортировки на месте. Следовательно, его пространственная сложность равна O(1).
Сортировка подсчетом работает, отслеживая, сколько раз каждый уникальный элемент появляется во входном массиве во вспомогательном массиве, размер которого, k, равен длине диапазона входных значений.
Математически k = (максимальный элемент — минимальный элемент + 1). Затем этот массив используется для размещения элементов непосредственно в правильном положении.
Временная сложность: Худший случай = средний случай = лучший случай = O(n + k)
Мы перебираем каждый элемент входного массива, который вносит временную сложность O(n). Мы также перебираем вспомогательный массив, который вносит O(k) времени. Таким образом, общая временная сложность составляет O (n + k).
Пространственная сложность: Мы используем вспомогательный массив размера k, поэтому пространственная сложность получается равной O(k).
В алгоритме сортировки по основанию мы сортируем массив на основе разрядных значений числа. Сортируем массив по цифрам, начиная с младшей значащей цифры.
На следующем шаге мы переходим к следующей значащей цифре и сортируем на основе этой цифры, сохраняя порядок предыдущего шага в случае ничьей. Это продолжается до тех пор, пока сортировка не будет завершена на старшей значащей цифре. Он использует алгоритм сортировки подсчетом для сортировки списка с учетом определенной цифры.
Временная сложность: Наихудший случай = Средний случай = Лучший случай = O(n * k)
Обозначим количество цифр/символов в максимальном значении входных данных как «k».
В этом алгоритме мы применяем алгоритм сортировки подсчетом для каждой цифры k раз.
Таким образом, временная сложность равна O(k * (n + b)), где b — основание для представления чисел, а k — количество цифр или основание наибольшего числа в массиве..
Поскольку b является постоянным для данной задачи, временная сложность может быть обозначена как O (n * k).
Сложность пространства возникает из-за сортировки подсчетом, которая требует O(n + k) пространство для хранения счетчиков, индексов и выходных массивов.
При сортировке сегментами мы делим массив на несколько групп, называемых сегментами, путем соответствующего сопоставления каждого элемента с сегментом. Затем мы сортируем каждое ведро, используя любой подходящий алгоритм сортировки, а затем последовательно собираем элементы из ведер, чтобы получить отсортированный массив. Функция отображения является функцией характеристики входа.
- Худший вариант: O(n2)
элементов, чем другие. Таким образом, общая сложность зависит от алгоритма, который используется для сортировки каждого сегмента, который обычно является сортировкой вставками, что дает квадратичную сложность.
- Средний случай и лучший случай: O(n + k)
Когда элементы распределены в массиве случайным образом, сортировка сегментов выполняется за линейное время во всех случаях, пока сумма квадратов размеров сегментов линейна относительно общего количества элементов.
Нам нужно O(k) памяти для хранения k пустых сегментов, а затем мы делим массив размером O(n) на эти сегменты, которые требуют в общей сложности O(n + k) пространство в целом, учитывая, что мы используем сортировку вставками для сортировки элементов в ведре.
Подробный обзор всей ключевой информации, связанной с этими 9 популярными алгоритмами сортировки, см. в статье «Все об алгоритмах сортировки».
Шпаргалка по временной и пространственной сложности алгоритмов сортировки
Вот шпаргалка, которая поможет вам запомнить основные атрибуты каждого алгоритма:
Готовы ли вы пройти следующее собеседование по программированию?
Знание временных и пространственных сложностей различных алгоритмов сортировки может помочь решить многие вопросы собеседования почти на каждом собеседовании по программированию для разработчиков программного обеспечения.