Files
hello-algo/ru/docs/index.html

625 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Generated from the shared homepage template and locale configuration. -->
<link href="../assets/home/50aa7b2c8191c024/hero-motion.css" rel="stylesheet"/>
<noscript>
<style>
[data-home-src], video[data-home-poster], [data-hero-fallback] { display: none; }
</style>
</noscript>
<section class="home-div home-universe-bg" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="starfield">
<div class="starfield-origin">
</div>
</div>
<div class="hero-div hero-div--ru" data-home-layout="universe">
<img alt="" data-hero-asset="ground" data-source-height="380" data-source-width="881" height="380" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/567306c070a6a7e2/ground.webp" style="position: absolute; width: auto; height: 26.445%; left: 28.211%; top: 54.145%;; aspect-ratio: 881 / 380" width="881"/>
<img alt="" data-hero-asset="links" data-source-height="1134" data-source-width="1562" height="1134" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/3e50f38a325c1cb5/links.webp" style="position: absolute; width: auto; height: 78.751%; left: 10.545%; top: 7.326%;; aspect-ratio: 1562 / 1134" width="1562"/>
<a href="chapter_introduction/">
<img alt="" data-hero-asset="astronaut" data-source-height="672" data-source-width="515" height="672" src="../assets/home/50aa7b2c8191c024/../shared/images/8e5eb3b3e3ebd9f7/astronaut.webp" style="height: 46.673%; left: 35.413%; top: 24.343%;; aspect-ratio: 515 / 672" width="515"/>
<span style="left: 52.244%; top: 20.919%;">
Введение в алгоритмы
</span>
</a>
<a href="chapter_computational_complexity/">
<img alt="" data-hero-asset="chapter_computational_complexity" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/2fb425426d1f8d86/chapter_computational_complexity.webp" data-source-height="178" data-source-width="113" height="178" style="height: 12.347%; left: 36.267%; top: 37.653%;; aspect-ratio: 113 / 178" width="113"/>
<noscript>
<img alt="" height="178" src="../assets/home/50aa7b2c8191c024/../shared/images/2fb425426d1f8d86/chapter_computational_complexity.webp" style="height: 12.347%; left: 36.267%; top: 37.653%;" width="113"/>
</noscript>
<span style="left: 39.244%; top: 33.919%;">
Анализ сложности
</span>
</a>
<a href="chapter_array_and_linkedlist/">
<img alt="" data-hero-asset="chapter_array_and_linkedlist" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/5cbbdf7be555d3ef/chapter_array_and_linkedlist.webp" data-source-height="319" data-source-width="468" height="319" style="height: 22.242%; left: 73.242%; top: 52.481%;; aspect-ratio: 468 / 319" width="468"/>
<noscript>
<img alt="" height="319" src="../assets/home/50aa7b2c8191c024/../shared/images/5cbbdf7be555d3ef/chapter_array_and_linkedlist.webp" style="height: 22.242%; left: 73.242%; top: 52.481%;" width="468"/>
</noscript>
<span style="left: 83.897%; top: 76.259%;">
Массивы и списки
</span>
</a>
<a href="chapter_stack_and_queue/">
<img alt="" data-hero-asset="chapter_stack_and_queue" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/e2667767cf7481bd/chapter_stack_and_queue.webp" data-source-height="204" data-source-width="204" height="204" style="height: 14.302%; left: 62.646%; top: 77.875%;; aspect-ratio: 204 / 204" width="204"/>
<noscript>
<img alt="" height="204" src="../assets/home/50aa7b2c8191c024/../shared/images/e2667767cf7481bd/chapter_stack_and_queue.webp" style="height: 14.302%; left: 62.646%; top: 77.875%;" width="204"/>
</noscript>
<span style="left: 77.571%; top: 91.25%;">
Стек и очередь
</span>
</a>
<a href="chapter_hashing/">
<img alt="" data-hero-asset="chapter_hashing" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/b108d70a537714cb/chapter_hashing.webp" data-source-height="218" data-source-width="218" height="218" style="height: 15.266%; left: 63.281%; top: 27.933%;; aspect-ratio: 218 / 218" width="218"/>
<noscript>
<img alt="" height="218" src="../assets/home/50aa7b2c8191c024/../shared/images/b108d70a537714cb/chapter_hashing.webp" style="height: 15.266%; left: 63.281%; top: 27.933%;" width="218"/>
</noscript>
<span style="left: 68.862%; top: 46.292%;">
Хеш-таблицы
</span>
</a>
<a href="chapter_tree/">
<img alt="" data-hero-asset="chapter_tree" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/8138bb0acecedec4/chapter_tree.webp" data-source-height="281" data-source-width="280" height="281" style="height: 19.615%; left: 80.137%; top: 26.678%;; aspect-ratio: 280 / 281" width="280"/>
<noscript>
<img alt="" height="281" src="../assets/home/50aa7b2c8191c024/../shared/images/8138bb0acecedec4/chapter_tree.webp" style="height: 19.615%; left: 80.137%; top: 26.678%;" width="280"/>
</noscript>
<span style="left: 96.159%; top: 44.8%;">
Деревья
</span>
</a>
<a href="chapter_heap/">
<img alt="" data-hero-asset="chapter_heap" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/7586281e6691807a/chapter_heap.webp" data-source-height="152" data-source-width="151" height="152" style="height: 10.566%; left: 77.226%; top: 11.559%;; aspect-ratio: 151 / 152" width="151"/>
<noscript>
<img alt="" height="152" src="../assets/home/50aa7b2c8191c024/../shared/images/7586281e6691807a/chapter_heap.webp" style="height: 10.566%; left: 77.226%; top: 11.559%;" width="151"/>
</noscript>
<span style="left: 88.103%; top: 15.422%;">
Куча
</span>
</a>
<a href="chapter_graph/">
<img alt="" data-hero-asset="chapter_graph" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/175a7f2e7c3cf5f0/chapter_graph.webp" data-source-height="272" data-source-width="542" height="272" style="height: 16.112%; left: 51.854%; top: 5.575%;; aspect-ratio: 542 / 272" width="542"/>
<noscript>
<img alt="" height="272" src="../assets/home/50aa7b2c8191c024/../shared/images/175a7f2e7c3cf5f0/chapter_graph.webp" style="height: 16.112%; left: 51.854%; top: 5.575%;" width="542"/>
</noscript>
<span style="left: 71.195%; top: 6.503%;">
Графы
</span>
</a>
<a href="chapter_searching/">
<img alt="" data-hero-asset="chapter_searching" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/ebfe2b953dbb9d90/chapter_searching.webp" data-source-height="216" data-source-width="216" height="216" style="height: 15.149%; left: 18.185%; top: 16.404%;; aspect-ratio: 216 / 216" width="216"/>
<noscript>
<img alt="" height="216" src="../assets/home/50aa7b2c8191c024/../shared/images/ebfe2b953dbb9d90/chapter_searching.webp" style="height: 15.149%; left: 18.185%; top: 16.404%;" width="216"/>
</noscript>
<span style="left: 14.556%; top: 20.876%;">
Поиск
</span>
</a>
<a href="chapter_sorting/">
<img alt="" data-hero-asset="chapter_sorting" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/9d4be68b2680967c/chapter_sorting.webp" data-source-height="137" data-source-width="138" height="137" style="height: 9.574%; left: 25.409%; top: 40.747%;; aspect-ratio: 138 / 137" width="138"/>
<noscript>
<img alt="" height="137" src="../assets/home/50aa7b2c8191c024/../shared/images/9d4be68b2680967c/chapter_sorting.webp" style="height: 9.574%; left: 25.409%; top: 40.747%;" width="138"/>
</noscript>
<span style="left: 28.805%; top: 53.808%;">
Сортировка
</span>
</a>
<a href="chapter_divide_and_conquer/">
<img alt="" data-hero-asset="chapter_divide_and_conquer" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/6f5766ca9385cd2e/chapter_divide_and_conquer.webp" data-source-height="269" data-source-width="407" height="269" style="height: 18.681%; left: 32.721%; top: 4.816%;; aspect-ratio: 407 / 269" width="407"/>
<noscript>
<img alt="" height="269" src="../assets/home/50aa7b2c8191c024/../shared/images/6f5766ca9385cd2e/chapter_divide_and_conquer.webp" style="height: 18.681%; left: 32.721%; top: 4.816%;" width="407"/>
</noscript>
<span style="left: 28.42%; top: 8.679%;">
Разделяй и властвуй
</span>
</a>
<a href="chapter_backtracking/">
<img alt="" data-hero-asset="chapter_backtracking" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/176675e685febf11/chapter_backtracking.webp" data-source-height="249" data-source-width="345" height="249" style="height: 17.338%; left: 4.875%; top: 32.925%;; aspect-ratio: 345 / 249" width="345"/>
<noscript>
<img alt="" height="249" src="../assets/home/50aa7b2c8191c024/../shared/images/176675e685febf11/chapter_backtracking.webp" style="height: 17.338%; left: 4.875%; top: 32.925%;" width="345"/>
</noscript>
<span style="left: 4.742%; top: 50.113%;">
Поиск с возвратом
</span>
</a>
<a href="chapter_dynamic_programming/">
<img alt="" data-hero-asset="chapter_dynamic_programming" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/06264b1ffd05b08e/chapter_dynamic_programming.webp" data-source-height="268" data-source-width="267" height="268" style="height: 15.47%; left: 9.406%; top: 57.472%;; aspect-ratio: 267 / 268" width="267"/>
<noscript>
<img alt="" height="268" src="../assets/home/50aa7b2c8191c024/../shared/images/06264b1ffd05b08e/chapter_dynamic_programming.webp" style="height: 15.47%; left: 9.406%; top: 57.472%;" width="267"/>
</noscript>
<span style="left: 6.561%; top: 75.351%;">
Динамическое программирование
</span>
</a>
<a href="chapter_greedy/">
<img alt="" data-hero-asset="chapter_greedy" data-hero-fallback="../assets/home/50aa7b2c8191c024/../shared/images/2ce6caaac951c40b/chapter_greedy.webp" data-source-height="202" data-source-width="265" height="202" style="height: 14.127%; left: 23.132%; top: 75.803%;; aspect-ratio: 265 / 202" width="265"/>
<noscript>
<img alt="" height="202" src="../assets/home/50aa7b2c8191c024/../shared/images/2ce6caaac951c40b/chapter_greedy.webp" style="height: 14.127%; left: 23.132%; top: 75.803%;" width="265"/>
</noscript>
<span style="left: 21.619%; top: 86.85%;">
Жадность
</span>
</a>
</div>
<div class="heading-div">
<img alt="" loading="lazy" src="https://readme-typing-svg.demolab.com/?font=Roboto&amp;weight=400&amp;duration=3500&amp;pause=2000&amp;color=FFF&amp;center=true&amp;vCenter=true&amp;random=false&amp;width=260&amp;lines=Hello%2C+%D0%90%D0%BB%D0%B3%D0%BE!" style="height: min(9vh, 12vw);"/>
<div>
<p style="margin-top: max(-1vh, -2vw); margin-bottom: min(2vh, 3.5vw);">
Учебник по структурам данных и алгоритмам с анимированными схемами и кодом, готовым к запуску в один клик
</p>
<a class="rounded-button" href="chapter_hello_algo/">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
<path d="M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z">
</path>
</svg>
<span>
Начать чтение
</span>
</a>
<a class="rounded-button" href="https://github.com/krahets/hello-algo">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg">
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z">
</path>
</svg>
<span>
GitHub
</span>
</a>
</div>
<div style="text-align: center; margin-top: min(2.5vh, 3.5vw);">
<svg fill="var(--md-default-fg-color)" height="2vh" viewbox="0 0 384 512" xmlns="http://www.w3.org/2000/svg">
<path d="M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z">
</path>
</svg>
</div>
</div>
</section>
<section class="home-div" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="section-content">
<div class="reading-media">
<div class="media-block">
<a href="chapter_hello_algo/">
<div style="height: 4.34%;">
</div>
<img alt="" class="device-on-hover" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/5b64cf7672ec5ec6/web_mac_iphone.webp" decoding="async" height="965" style="height: 66.31%;" width="1598"/>
<noscript>
<img alt="" class="device-on-hover" height="965" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/5b64cf7672ec5ec6/web_mac_iphone.webp" style="height: 66.31%;" width="1598"/>
</noscript>
<div style="height: 4.34%;">
</div>
<div class="text-button">
<span>
Читать онлайн
</span>
<svg viewbox="0 0 320 512" xmlns="http://www.w3.org/2000/svg">
<path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z">
</path>
</svg>
</div>
</a>
</div>
<div class="media-block">
<a href="https://github.com/krahets/hello-algo/releases">
<img alt="" class="device-on-hover" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/66baa2f9bf3abec7/pdf_ipad.webp" decoding="async" height="960" style="height: 75%;" width="812"/>
<noscript>
<img alt="" class="device-on-hover" height="960" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/66baa2f9bf3abec7/pdf_ipad.webp" style="height: 75%;" width="812"/>
</noscript>
<div class="text-button">
<span>
Скачать PDF/EPUB
</span>
<svg viewbox="0 0 320 512" xmlns="http://www.w3.org/2000/svg">
<path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z">
</path>
</svg>
</div>
</a>
</div>
</div>
<p style="margin-top: 2em;">
500 анимированных схем, код на 14 языках программирования и 3000 ответов сообщества помогут вам быстро войти в мир структур данных и алгоритмов.
</p>
</div>
</section>
<section class="home-div" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="section-content">
<h3 style="text-align: center; margin: 1em auto;">
Рекомендации
</h3>
<div class="intro-container endor-container">
<div class="intro-text endor-text">
<p style="margin-bottom: 0;">
«Понятная вводная книга по структурам данных и алгоритмам, которая ведет читателя через практическое обучение шаг за шагом. Очень рекомендую всем начинающим.»
</p>
<p style="font-weight: bold;">
—— Junhui Deng, профессор факультета компьютерных наук Университета Цинхуа
</p>
</div>
<div class="intro-text endor-text">
<p style="margin-bottom: 0;">
«Если бы у меня была “Hello Algo”, когда я изучал структуры данных и алгоритмы, учиться было бы в десять раз проще!»
</p>
<p style="font-weight: bold;">
—— Mu Li, Senior Principal Scientist, Amazon
</p>
</div>
</div>
</div>
</section>
<section class="home-div" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="section-content">
<div class="intro-container">
<div class="intro-text">
<div>
<div style="display: flex; align-items: center;">
<svg height="1.5em" viewbox="0 0 640 512" width="1.5em" xmlns="http://www.w3.org/2000/svg">
<path d="M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z" fill="var(--md-primary-bg-color)">
</path>
</svg>
<h3 style="margin-left: 0.5em;">
Анимированные схемы
</h3>
</div>
<p style="margin: 0;">
Материал изложен ясно и последовательно, поэтому вход в тему получается плавным.
</p>
<p class="intro-quote">
"A picture is worth a thousand words."
<br/>
«Одна схема стоит тысячи слов»
</p>
</div>
</div>
<video aria-label="Animation example" class="intro-image" data-home-poster="../assets/home/50aa7b2c8191c024/../shared/images/9e5f39bf33afc70f/animation-poster.webp" data-home-video="../assets/home/50aa7b2c8191c024/../shared/media/6c70de2b2bf4eef7/animation.mp4" height="1080" loop="" muted="" playsinline="" preload="none" style="aspect-ratio: 1600 / 1080" width="1600">
</video>
<noscript>
<a href="../assets/home/50aa7b2c8191c024/../shared/media/6c70de2b2bf4eef7/animation.mp4">
<img alt="Animation example" class="intro-image" height="1080" src="../assets/home/50aa7b2c8191c024/../shared/images/9e5f39bf33afc70f/animation-poster.webp" width="1600"/>
Анимированные схемы
</a>
</noscript>
</div>
<div class="intro-container">
<video aria-label="Running code example" class="intro-image" data-home-poster="../assets/home/50aa7b2c8191c024/../shared/images/f33a13e8331245ae/running_code-poster.webp" data-home-video="../assets/home/50aa7b2c8191c024/../shared/media/bb169a96ca8316da/running_code.mp4" height="1082" loop="" muted="" playsinline="" preload="none" style="aspect-ratio: 1600 / 1082" width="1600">
</video>
<noscript>
<a href="../assets/home/50aa7b2c8191c024/../shared/media/bb169a96ca8316da/running_code.mp4">
<img alt="Running code example" class="intro-image" height="1082" src="../assets/home/50aa7b2c8191c024/../shared/images/f33a13e8331245ae/running_code-poster.webp" width="1600"/>
Запуск в один клик
</a>
</noscript>
<div class="intro-text">
<div>
<div style="display: flex; align-items: center;">
<svg height="1.5em" viewbox="0 0 640 512" width="1.5em" xmlns="http://www.w3.org/2000/svg">
<path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z" fill="var(--md-primary-bg-color)">
</path>
</svg>
<h3 style="margin-left: 0.5em;">
Запуск в один клик
</h3>
</div>
<p style="margin: 0;">
Код на более чем десяти языках можно запускать и визуализировать прямо в книге.
</p>
<p class="intro-quote">
"Talk is cheap. Show me the code."
<br/>
«Меньше слов, больше кода»
</p>
</div>
</div>
</div>
<div class="intro-container">
<div class="intro-text">
<div>
<div style="display: flex; align-items: center;">
<svg height="1.5em" viewbox="0 0 640 512" width="1.5em" xmlns="http://www.w3.org/2000/svg">
<path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z" fill="var(--md-primary-bg-color)">
</path>
</svg>
<h3 style="margin-left: 0.5em;">
Учимся вместе
</h3>
</div>
<p style="margin: 0;">
Добро пожаловать к обсуждениям и вопросам: продвигаться вместе проще.
</p>
<p class="intro-quote">
"Learning by teaching."
<br/>
«Обучая других, учишься сам»
</p>
</div>
</div>
<video aria-label="Comments example" class="intro-image" data-home-poster="../assets/home/50aa7b2c8191c024/../shared/images/f9ac69536a7582f5/comment-poster.webp" data-home-video="../assets/home/50aa7b2c8191c024/../shared/media/62aa0b8d351c63a7/comment.mp4" height="1080" loop="" muted="" playsinline="" preload="none" style="aspect-ratio: 1600 / 1080" width="1600">
</video>
<noscript>
<a href="../assets/home/50aa7b2c8191c024/../shared/media/62aa0b8d351c63a7/comment.mp4">
<img alt="Comments example" class="intro-image" height="1080" src="../assets/home/50aa7b2c8191c024/../shared/images/f9ac69536a7582f5/comment-poster.webp" width="1600"/>
Учимся вместе
</a>
</noscript>
</div>
</div>
</section>
<section class="home-div" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="section-content" style="max-width: 90vw;">
<div style="margin: 2em auto;">
<h3>
Автор
</h3>
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/krahets">
<img alt="Author: yudongjin" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/02348410d40f7665/avatar_yudongjin.webp" decoding="async" height="512" width="512"/>
<noscript>
<img alt="Author: yudongjin" class="profile-img" height="512" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/02348410d40f7665/avatar_yudongjin.webp" width="512"/>
</noscript>
<br/>
<b>
Yudong Jin (@krahets)
</b>
</a>
</div>
</div>
</div>
<div style="margin: 2em auto;">
<h3>
Переводчики
</h3>
<p>
Русская печатная версия была переведена И. А. Шевкун, а русская онлайн-версия была вычитана Yuyan Huang. Благодарим их за вклад!
</p>
<div class="profile-div">
<div class="profile-cell translator-profile-cell">
<img alt="Translator: shevkun" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/91019a79d7ac4441/avatar_shevkun.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Translator: shevkun" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/91019a79d7ac4441/avatar_shevkun.webp" width="384"/>
</noscript>
<br/>
<b>
И. А. Шевкун
</b>
</div>
<div class="profile-cell translator-profile-cell">
<a href="https://github.com/veronicahuang2977">
<img alt="Translator: yuyanhuang" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/f2c06730dacd8659/avatar_yuyanhuang.webp" decoding="async" height="512" width="512"/>
<noscript>
<img alt="Translator: yuyanhuang" class="profile-img" height="512" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/f2c06730dacd8659/avatar_yuyanhuang.webp" width="512"/>
</noscript>
<br/>
<b>
Yuyan Huang
</b>
</a>
</div>
</div>
</div>
<div style="margin: 2em auto;">
<h3>
Ревьюеры кода
</h3>
<p>
Многоязычные версии кода в этой книге были подготовлены при участии следующих разработчиков. Благодарим их за время и вклад!
</p>
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/coderonion">
<img alt="Reviewer: coderonion" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/db606f27971eae34/avatar_coderonion.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: coderonion" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/db606f27971eae34/avatar_coderonion.webp" width="384"/>
</noscript>
<br/>
<b>
coderonion
</b>
<br/>
<sub>
Zig, Rust
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/curtishd">
<img alt="Reviewer: curtishd" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/feedb0e547ea31fc/avatar_curtishd.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: curtishd" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/feedb0e547ea31fc/avatar_curtishd.webp" width="384"/>
</noscript>
<br/>
<b>
curtishd
</b>
<br/>
<sub>
Kotlin
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Gonglja">
<img alt="Reviewer: Gonglja" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/cdcf023b032b8d30/avatar_Gonglja.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: Gonglja" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/cdcf023b032b8d30/avatar_Gonglja.webp" width="384"/>
</noscript>
<br/>
<b>
Gonglja
</b>
<br/>
<sub>
C, C++
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/gvenusleo">
<img alt="Reviewer: gvenusleo" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/464e2d351b9263ec/avatar_gvenusleo.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: gvenusleo" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/464e2d351b9263ec/avatar_gvenusleo.webp" width="384"/>
</noscript>
<br/>
<b>
gvenusleo
</b>
<br/>
<sub>
Dart
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/hpstory">
<img alt="Reviewer: hpstory" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/7b6478acdab6b845/avatar_hpstory.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: hpstory" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/7b6478acdab6b845/avatar_hpstory.webp" width="384"/>
</noscript>
<br/>
<b>
hpstory
</b>
<br/>
<sub>
C#
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/justin-tse">
<img alt="Reviewer: justin-tse" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/208ee5aae490eefa/avatar_justin-tse.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: justin-tse" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/208ee5aae490eefa/avatar_justin-tse.webp" width="384"/>
</noscript>
<br/>
<b>
justin-tse
</b>
<br/>
<sub>
JS, TS
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/khoaxuantu">
<img alt="Reviewer: khoaxuantu" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/9d3f1a21ff51de78/avatar_khoaxuantu.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: khoaxuantu" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/9d3f1a21ff51de78/avatar_khoaxuantu.webp" width="384"/>
</noscript>
<br/>
<b>
khoaxuantu
</b>
<br/>
<sub>
Ruby
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/krahets">
<img alt="Reviewer: krahets" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/e321f9a3ac2739e0/avatar_krahets.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: krahets" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/e321f9a3ac2739e0/avatar_krahets.webp" width="384"/>
</noscript>
<br/>
<b>
krahets
</b>
<br/>
<sub>
Python, Java
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/night-cruise">
<img alt="Reviewer: night-cruise" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/960b489efa22abd4/avatar_night-cruise.jpg" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: night-cruise" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/960b489efa22abd4/avatar_night-cruise.jpg" width="384"/>
</noscript>
<br/>
<b>
night-cruise
</b>
<br/>
<sub>
Rust
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/nuomi1">
<img alt="Reviewer: nuomi1" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/7316a9eb4429b259/avatar_nuomi1.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: nuomi1" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/7316a9eb4429b259/avatar_nuomi1.webp" width="384"/>
</noscript>
<br/>
<b>
nuomi1
</b>
<br/>
<sub>
Swift
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Reanon">
<img alt="Reviewer: Reanon" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/dcc15aa68cc793c7/avatar_Reanon.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: Reanon" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/dcc15aa68cc793c7/avatar_Reanon.webp" width="384"/>
</noscript>
<br/>
<b>
Reanon
</b>
<br/>
<sub>
Go, C
</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/rongyi">
<img alt="Reviewer: rongyi" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/5dc6c4b1d8bfe0ac/avatar_rongyi.webp" decoding="async" height="384" width="384"/>
<noscript>
<img alt="Reviewer: rongyi" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/5dc6c4b1d8bfe0ac/avatar_rongyi.webp" width="384"/>
</noscript>
<br/>
<b>
rongyi
</b>
<br/>
<sub>
Rust
</sub>
</a>
</div>
</div>
</div>
<div style="margin: 2em auto;">
<h3>
Участники проекта
</h3>
<p>
Книга постоянно совершенствуется благодаря совместным усилиям более чем 200 участников сообщества. Спасибо им за время и вклад!
</p>
<a href="https://github.com/krahets/hello-algo/graphs/contributors">
<img alt="Contributors" data-home-src="https://contrib.rocks/image?repo=krahets/hello-algo&amp;max=300&amp;columns=12" decoding="async" style="width: 100%; max-width: 38.5em;"/>
<noscript>
<img alt="Contributors" loading="lazy" src="https://contrib.rocks/image?repo=krahets/hello-algo&amp;max=300&amp;columns=12" style="width: 100%; max-width: 38.5em;"/>
</noscript>
</a>
</div>
</div>
</section>
<!-- This independent fallback also works when the deferred loader cannot be fetched. -->
<script defer="" onerror="document.querySelectorAll('[data-home-src], [data-home-poster]').forEach(function(el) { if (el.dataset.homeSrc) el.src = el.dataset.homeSrc; if (el.dataset.homePoster) el.poster = el.dataset.homePoster; });" src="../assets/home/50aa7b2c8191c024/javascripts/homepage-media.js">
</script>
<script>
// If the scene entry point itself fails, still provide chapter illustrations.
addEventListener('load', function () {
if (!window.Starfield) document.querySelectorAll('[data-hero-fallback]').forEach(function (image) {
image.src = image.dataset.heroFallback;
});
}, {once: true});
</script>