mirror of
https://github.com/krahets/hello-algo.git
synced 2026-11-05 23:18:41 +08:00
646 lines
35 KiB
HTML
646 lines
35 KiB
HTML
<!-- 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" 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: 90.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: 31.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: 8.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=Noto+Sans+SC&weight=400&duration=3500&pause=2000&color=FFF&center=true&vCenter=true&random=false&width=200&lines=Hello%2C+%E6%BC%94%E7%AE%97%E6%B3%95+!" 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_paperbook/">
|
||
<div style="height: 8.17%;">
|
||
</div>
|
||
<img alt="Cover" class="device-on-hover" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/dc5be783cea3a262/cover_render.webp" decoding="async" height="720" style="height: 66.83%;" width="535"/>
|
||
<noscript>
|
||
<img alt="Cover" class="device-on-hover" height="720" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/dc5be783cea3a262/cover_render.webp" style="height: 66.83%;" width="535"/>
|
||
</noscript>
|
||
<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="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;">
|
||
—— 鄧俊輝,清華大學計算機系教授
|
||
</p>
|
||
</div>
|
||
<div class="intro-text endor-text">
|
||
<p style="margin-bottom: 0;">
|
||
“如果我當年學資料結構與演算法的時候有《Hello 演算法》,學起來應該會簡單 10 倍!”
|
||
</p>
|
||
<p style="font-weight: bold;">
|
||
—— 李沐,亞馬遜資深首席科學家
|
||
</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>
|
||
靳宇棟(@krahets)
|
||
</b>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div style="margin: 2em auto;">
|
||
<h3>
|
||
譯者
|
||
</h3>
|
||
<p>
|
||
本書繁體中文版由以下譯者審閱,感謝他們的貢獻!
|
||
</p>
|
||
<div class="profile-div">
|
||
<div class="profile-cell translator-profile-cell">
|
||
<a href="https://github.com/Shyam-Chen">
|
||
<img alt="Reviewer: Shyam-Chen" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/a635319ad4eaf2e9/avatar_Shyam-Chen.webp" decoding="async" height="384" width="384"/>
|
||
<noscript>
|
||
<img alt="Reviewer: Shyam-Chen" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/a635319ad4eaf2e9/avatar_Shyam-Chen.webp" width="384"/>
|
||
</noscript>
|
||
<br/>
|
||
<b>
|
||
Shyam-Chen
|
||
</b>
|
||
</a>
|
||
</div>
|
||
<div class="profile-cell translator-profile-cell">
|
||
<a href="https://github.com/Dr-XYZ">
|
||
<img alt="Reviewer: Dr-XYZ" class="profile-img" data-home-src="../assets/home/50aa7b2c8191c024/../shared/images/b5b4c188d159778c/avatar_Dr-XYZ.webp" decoding="async" height="384" width="384"/>
|
||
<noscript>
|
||
<img alt="Reviewer: Dr-XYZ" class="profile-img" height="384" loading="lazy" src="../assets/home/50aa7b2c8191c024/../shared/images/b5b4c188d159778c/avatar_Dr-XYZ.webp" width="384"/>
|
||
</noscript>
|
||
<br/>
|
||
<b>
|
||
Dr-XYZ
|
||
</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&max=300&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&max=300&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>
|