You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hello-algo/chapter_divide_and_conquer/divide_and_conquer/index.html

3765 lines
94 KiB

1 year ago
<!doctype html>
<html lang="zh" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="动画图解、一键运行的数据结构与算法教程">
<meta name="author" content="Krahets">
<link rel="canonical" href="https://www.hello-algo.com/chapter_divide_and_conquer/divide_and_conquer/">
<link rel="prev" href="../">
1 year ago
<link rel="next" href="../binary_search_recur/">
1 year ago
1 year ago
1 year ago
<link rel="icon" href="../../assets/images/favicon.png">
1 year ago
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.4.1">
1 year ago
1 year ago
<title>12.1   分治算法 - Hello 算法</title>
1 year ago
1 year ago
<link rel="stylesheet" href="../../assets/stylesheets/main.72749a73.min.css">
1 year ago
1 year ago
<link rel="stylesheet" href="../../assets/stylesheets/palette.a5377069.min.css">
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Sans+SC:300,300i,400,400i,700,700i%7CFira+Code:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Noto Sans SC";--md-code-font:"Fira Code"}</style>
<link rel="stylesheet" href="../../stylesheets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
1 year ago
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
html.glightbox-open { overflow: initial; height: 100%; }
.gslide-title { margin-top: 0px; user-select: text; }
.gslide-desc { color: #666; user-select: text; }
.gslide-image img { background: white; }
.gscrollbar-fixer { padding-right: 15px; }
.gdesc-inner { font-size: 0.75rem; }
body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}
</style> <script src="../../assets/javascripts/glightbox.min.js"></script></head>
1 year ago
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#121" class="md-skip">
跳转至
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="页眉">
<a href="../.." title="Hello 算法" class="md-header__button md-logo" aria-label="Hello 算法" data-md-component="logo">
1 year ago
<img src="../../assets/images/logo.svg" alt="logo">
1 year ago
</a>
<label class="md-header__button md-icon" for="__drawer">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Hello 算法
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
1 year ago
12.1 &nbsp; 分治算法
1 year ago
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
1 year ago
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07 19.07 3.5m-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13.51 1.67m-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87.4 1.31M19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35-2.53-2.2m4.33-2.7 1.15-2.77 2.2 2.54-3.35.23m1.15-4.96-1.14-2.78 3.34.24-2.2 2.54M9.63 18.93l2.77 1.15-2.53 2.19-.24-3.34Z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="grey" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07 19.07 3.5m-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13.51 1.67m-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87.4 1.31M19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35-2.53-2.2m4.33-2.7 1.15-2.77 2.2 2.54-3.35.23m1.15-4.96-1.14-2.78 3.34.24-2.2 2.54M9.63 18.93l2.77 1.15-2.53 2.19-.24-3.34Z"/></svg>
</label>
</form>
1 year ago
1 year ago
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="选择当前语言">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/" hreflang="zh" class="md-select__link">
中文
</a>
</li>
</ul>
</div>
</div>
</div>
1 year ago
<label class="md-header__button md-icon" for="__search">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="查找">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="分享" aria-label="分享" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
正在初始化搜索引擎
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/krahets/hello-algo" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><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"/></svg>
1 year ago
</div>
<div class="md-source__repository">
krahets/hello-algo
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
1 year ago
1 year ago
<nav class="md-nav md-nav--primary" aria-label="导航栏" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Hello 算法" class="md-nav__button md-logo" aria-label="Hello 算法" data-md-component="logo">
1 year ago
<img src="../../assets/images/logo.svg" alt="logo">
1 year ago
</a>
Hello 算法
</label>
<div class="md-nav__source">
<a href="https://github.com/krahets/hello-algo" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><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"/></svg>
1 year ago
</div>
<div class="md-source__repository">
krahets/hello-algo
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_preface/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 4H3a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2M3 19V6h8v13H3m18 0h-8V6h8v13m-7-9.5h6V11h-6V9.5m0 2.5h6v1.5h-6V12m0 2.5h6V16h-6v-1.5Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 0 章 &nbsp; 前言
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_1">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 0 章 &nbsp; 前言
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_preface/about_the_book/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
0.1 &nbsp; 关于本书
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_preface/suggestions/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
0.2 &nbsp; 如何使用本书
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_preface/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
0.3 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_introduction/" class="md-nav__link ">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 16H5V5h14v14M6.2 7.7h5v1.5h-5V7.7m6.8 8.1h5v1.5h-5v-1.5m0-2.6h5v1.5h-5v-1.5M8 18h1.5v-2h2v-1.5h-2v-2H8v2H6V16h2v2m6.1-7.1 1.4-1.4 1.4 1.4 1.1-1-1.4-1.4L18 7.1 16.9 6l-1.4 1.4L14.1 6 13 7.1l1.4 1.4L13 9.9l1.1 1Z"/></svg>
1 year ago
<span class="md-ellipsis">
1 year ago
第 1 章 &nbsp; 初识算法
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_2">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 1 章 &nbsp; 初识算法
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
1.1 &nbsp; 算法无处不在
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
1.2 &nbsp; 算法是什么
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_introduction/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
1.3 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_computational_complexity/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 2h12v6l-4 4 4 4v6H6v-6l4-4-4-4V2m10 14.5-4-4-4 4V20h8v-3.5m-4-5 4-4V4H8v3.5l4 4M10 6h4v.75l-2 2-2-2V6Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 2 章 &nbsp; 复杂度分析
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_3">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 2 章 &nbsp; 复杂度分析
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
2.1 &nbsp; 算法效率评估
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/iteration_and_recursion/" class="md-nav__link">
<span class="md-ellipsis">
2.2 &nbsp; 迭代与递归
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
2.3 &nbsp; 时间复杂度
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
2.4 &nbsp; 空间复杂度
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
2.5 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_data_structure/" class="md-nav__link ">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 13.5v8H3v-8h8m-2 2H5v4h4v-4M12 2l5.5 9h-11L12 2m0 3.86L10.08 9h3.84L12 5.86M17.5 13c2.5 0 4.5 2 4.5 4.5S20 22 17.5 22 13 20 13 17.5s2-4.5 4.5-4.5m0 2a2.5 2.5 0 0 0-2.5 2.5 2.5 2.5 0 0 0 2.5 2.5 2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-2.5-2.5Z"/></svg>
1 year ago
1 year ago
<span class="md-ellipsis">
1 year ago
第 3 章 &nbsp; 数据结构
1 year ago
</span>
1 year ago
1 year ago
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_4">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 3 章 &nbsp; 数据结构
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
1 year ago
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
3.1 &nbsp; 数据结构分类
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_data_structure/basic_data_types/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
3.2 &nbsp; 基本数据类型
1 year ago
</span>
</a>
</li>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_data_structure/number_encoding/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
3.3 &nbsp; 数字编码 *
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_data_structure/character_encoding/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
3.4 &nbsp; 字符编码 *
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
3.5 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_array_and_linkedlist/" class="md-nav__link ">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 5v14h17V5H3m4 2v2H5V7h2m-2 6v-2h2v2H5m0 2h2v2H5v-2m13 2H9v-2h9v2m0-4H9v-2h9v2m0-4H9V7h9v2Z"/></svg>
1 year ago
<span class="md-ellipsis">
1 year ago
第 4 章 &nbsp; 数组与链表
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_5">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 4 章 &nbsp; 数组与链表
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
4.1 &nbsp; 数组
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
4.2 &nbsp; 链表
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
4.3 &nbsp; 列表
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/ram_and_cache/" class="md-nav__link">
<span class="md-ellipsis">
4.4 &nbsp; 内存与缓存 *
</span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
12 months ago
4.5 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_stack_and_queue/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.36 20.2v-5.38h1.79V22H3v-7.18h1.8v5.38h12.56M6.77 14.32l.37-1.76 8.79 1.85-.37 1.76-8.79-1.85m1.16-4.21.76-1.61 8.14 3.78-.76 1.62-8.14-3.79m2.26-3.99 1.15-1.38 6.9 5.76-1.15 1.37-6.9-5.75m4.45-4.25L20 9.08l-1.44 1.07-5.36-7.21 1.44-1.07M6.59 18.41v-1.8h8.98v1.8H6.59Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 5 章 &nbsp; 栈与队列
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_6">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 5 章 &nbsp; 栈与队列
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
5.1 &nbsp;
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
5.2 &nbsp; 队列
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
5.3 &nbsp; 双向队列
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
5.4 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_hashing/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.3 17.89c1.32-2.1.7-4.89-1.41-6.21a4.52 4.52 0 0 0-6.21 1.41C10.36 15.2 11 18 13.09 19.3c1.47.92 3.33.92 4.8 0L21 22.39 22.39 21l-3.09-3.11m-2-.62c-.98.98-2.56.97-3.54 0-.97-.98-.97-2.56.01-3.54.97-.97 2.55-.97 3.53 0 .96.99.95 2.57-.03 3.54h.03M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.81a6.3 6.3 0 0 1-1.31-2H5v-4h4.18c.16-.71.43-1.39.82-2H5V8h6v2.81a6.3 6.3 0 0 1 2-1.31V8h6v2a6.499 6.499 0 0 1 2 2V6a2 2 0 0 0-2-2Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 6 章 &nbsp; 哈希表
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_7">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 6 章 &nbsp; 哈希表
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
6.1 &nbsp; 哈希表
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
6.2 &nbsp; 哈希冲突
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_algorithm/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
6.3 &nbsp; 哈希算法
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
6.4 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_tree/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.5 17c-.14 0-.26 0-.39.04L17.5 13.8c.45-.45.75-1.09.75-1.8a2.5 2.5 0 0 0-2.5-2.5c-.14 0-.25 0-.4.04L13.74 6.3c.47-.46.76-1.09.76-1.8a2.5 2.5 0 0 0-5 0c0 .7.29 1.34.76 1.79L8.65 9.54c-.15-.04-.26-.04-.4-.04a2.5 2.5 0 0 0-2.5 2.5c0 .71.29 1.34.75 1.79l-1.61 3.25C4.76 17 4.64 17 4.5 17a2.5 2.5 0 0 0 0 5A2.5 2.5 0 0 0 7 19.5c0-.7-.29-1.34-.76-1.79l1.62-3.25c.14.04.26.04.39.04s.25 0 .38-.04l1.63 3.25c-.47.45-.76 1.09-.76 1.79a2.5 2.5 0 0 0 5 0A2.5 2.5 0 0 0 12 17c-.13 0-.26 0-.39.04L10 13.8c.45-.45.75-1.09.75-1.8 0-.7-.29-1.33-.75-1.79l1.61-3.25c.13.04.26.04.39.04s.26 0 .39-.04L14 10.21a2.5 2.5 0 0 0 1.75 4.29c.13 0 .25 0 .38-.04l1.63 3.25c-.47.45-.76 1.09-.76 1.79a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-2.5-2.5m-15 3.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m8.5-1c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1M7.25 12c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1M11 4.5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1m3.75 7.5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1m4.75 8.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 7 章 &nbsp;
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_8">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 7 章 &nbsp;
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.1 &nbsp; 二叉树
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.2 &nbsp; 二叉树遍历
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/array_representation_of_tree/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.3 &nbsp; 二叉树数组表示
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.4 &nbsp; 二叉搜索树
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.5 &nbsp; AVL 树 *
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
7.6 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_heap/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1a2.5 2.5 0 0 0-2.5 2.5A2.5 2.5 0 0 0 11 5.79V7H7a2 2 0 0 0-2 2v.71A2.5 2.5 0 0 0 3.5 12 2.5 2.5 0 0 0 5 14.29V15H4a2 2 0 0 0-2 2v1.21A2.5 2.5 0 0 0 .5 20.5 2.5 2.5 0 0 0 3 23a2.5 2.5 0 0 0 2.5-2.5A2.5 2.5 0 0 0 4 18.21V17h4v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 9 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17a2 2 0 0 0-2-2H7v-.71A2.5 2.5 0 0 0 8.5 12 2.5 2.5 0 0 0 7 9.71V9h10v.71A2.5 2.5 0 0 0 15.5 12a2.5 2.5 0 0 0 1.5 2.29V15h-1a2 2 0 0 0-2 2v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 15 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17h4v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 21 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17a2 2 0 0 0-2-2h-1v-.71A2.5 2.5 0 0 0 20.5 12 2.5 2.5 0 0 0 19 9.71V9a2 2 0 0 0-2-2h-4V5.79a2.5 2.5 0 0 0 1.5-2.29A2.5 2.5 0 0 0 12 1m0 1.5a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1M6 11a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m12 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1M3 19.5a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 8 章 &nbsp;
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_9">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 8 章 &nbsp;
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
8.1 &nbsp;
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
8.2 &nbsp; 建堆操作
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_heap/top_k/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
8.3 &nbsp; Top-K 问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
8.4 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_graph/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12 5.37-.44-.06L6 14.9c.24.21.4.48.47.78h11.06c.07-.3.23-.57.47-.78l-5.56-9.59-.44.06M6.6 16.53l4.28 2.53c.29-.27.69-.43 1.12-.43.43 0 .83.16 1.12.43l4.28-2.53H6.6M12 22a1.68 1.68 0 0 1-1.68-1.68l.09-.56-4.3-2.55c-.31.36-.76.58-1.27.58a1.68 1.68 0 0 1-1.68-1.68c0-.79.53-1.45 1.26-1.64V9.36c-.83-.11-1.47-.82-1.47-1.68A1.68 1.68 0 0 1 4.63 6c.55 0 1.03.26 1.34.66l4.41-2.53-.06-.45c0-.93.75-1.68 1.68-1.68.93 0 1.68.75 1.68 1.68l-.06.45 4.41 2.53c.31-.4.79-.66 1.34-.66a1.68 1.68 0 0 1 1.68 1.68c0 .86-.64 1.57-1.47 1.68v5.11c.73.19 1.26.85 1.26 1.64a1.68 1.68 0 0 1-1.68 1.68c-.51 0-.96-.22-1.27-.58l-4.3 2.55.09.56A1.68 1.68 0 0 1 12 22M10.8 4.86 6.3 7.44l.02.24c0 .71-.44 1.32-1.06 1.57l.03 5.25 5.51-9.64m2.4 0 5.51 9.64.03-5.25c-.62-.25-1.06-.86-1.06-1.57l.02-.24-4.5-2.58Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 9 章 &nbsp;
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_10">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 9 章 &nbsp;
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
9.1 &nbsp;
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
9.2 &nbsp; 图基础操作
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
9.3 &nbsp; 图的遍历
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
9.4 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_searching/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19.31 18.9 3.08 3.1L21 23.39l-3.12-3.07c-.69.43-1.51.68-2.38.68-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5c0 .88-.25 1.71-.69 2.4m-3.81.1a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 0 0 5M21 4v2H3V4h18M3 16v-2h6v2H3m0-5V9h18v2h-2.03c-1.01-.63-2.2-1-3.47-1s-2.46.37-3.47 1H3Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 10 章 &nbsp; 搜索
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_11">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 10 章 &nbsp; 搜索
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
10.1 &nbsp; 二分查找
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search_insertion/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
10.2 &nbsp; 二分查找插入点
1 year ago
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search_edge/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
10.3 &nbsp; 二分查找边界
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
10.4 &nbsp; 哈希优化策略
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
10.5 &nbsp; 重识搜索算法
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
10.6 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_sorting/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2v-2Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 11 章 &nbsp; 排序
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_12">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 11 章 &nbsp; 排序
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/sorting_algorithm/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.1 &nbsp; 排序算法
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/selection_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.2 &nbsp; 选择排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.3 &nbsp; 冒泡排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.4 &nbsp; 插入排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.5 &nbsp; 快速排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.6 &nbsp; 归并排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/heap_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.7 &nbsp; 堆排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/bucket_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.8 &nbsp; 桶排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/counting_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.9 &nbsp; 计数排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/radix_sort/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.10 &nbsp; 基数排序
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_sorting/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
11.11 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" checked>
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7v2h5V7h-5M2 9v6h5V9H2m10 0v2H9v2h3v2l3-3-3-3m5 2v2h5v-2h-5m0 4v2h5v-2h-5Z"/></svg>
1 year ago
<span class="md-ellipsis">
1 year ago
第 12 章 &nbsp; 分治
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_13">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 12 章 &nbsp; 分治
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
1 year ago
<span class="md-ellipsis">
1 year ago
12.1 &nbsp; 分治算法
1 year ago
</span>
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
1 year ago
<span class="md-ellipsis">
1 year ago
12.1 &nbsp; 分治算法
1 year ago
</span>
1 year ago
</a>
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1211" class="md-nav__link">
1 year ago
12.1.1 &nbsp; 如何判断分治问题
1 year ago
</a>
</li>
<li class="md-nav__item">
<a href="#1212" class="md-nav__link">
1 year ago
12.1.2 &nbsp; 通过分治提升效率
1 year ago
</a>
1 year ago
<nav class="md-nav" aria-label="12.1.2   通过分治提升效率">
1 year ago
<ul class="md-nav__list">
<li class="md-nav__item">
1 year ago
<a href="#1" class="md-nav__link">
1. &nbsp; 操作数量优化
1 year ago
</a>
</li>
<li class="md-nav__item">
1 year ago
<a href="#2" class="md-nav__link">
2. &nbsp; 并行计算优化
1 year ago
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
1 year ago
<a href="#1213" class="md-nav__link">
1 year ago
12.1.3 &nbsp; 分治常见应用
1 year ago
</a>
</li>
</ul>
</nav>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../binary_search_recur/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
12.2 &nbsp; 分治搜索策略
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
1 year ago
<a href="../build_binary_tree_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
12.3 &nbsp; 构建树问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../hanota_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
12.4 &nbsp; 汉诺塔问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../summary/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
12.5 &nbsp; 小结
1 year ago
</span>
</a>
</li>
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_backtracking/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 15a3 3 0 0 1 3 3 3 3 0 0 1-3 3 2.99 2.99 0 0 1-2.83-2H14v-2h1.17c.41-1.17 1.52-2 2.83-2m0 2a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m0-9a1.43 1.43 0 0 0 1.43-1.43 1.43 1.43 0 1 0-2.86 0A1.43 1.43 0 0 0 18 8m0-5.43a4 4 0 0 1 4 4C22 9.56 18 14 18 14s-4-4.44-4-7.43a4 4 0 0 1 4-4M8.83 17H10v2H8.83A2.99 2.99 0 0 1 6 21a3 3 0 0 1-3-3c0-1.31.83-2.42 2-2.83V14h2v1.17c.85.3 1.53.98 1.83 1.83M6 17a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1M6 3a3 3 0 0 1 3 3c0 1.31-.83 2.42-2 2.83V10H5V8.83A2.99 2.99 0 0 1 3 6a3 3 0 0 1 3-3m0 2a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m5 14v-2h2v2h-2m-4-6H5v-2h2v2Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 13 章 &nbsp; 回溯
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_14">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 13 章 &nbsp; 回溯
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_backtracking/backtracking_algorithm/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
13.1 &nbsp; 回溯算法
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_backtracking/permutations_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
13.2 &nbsp; 全排列问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_backtracking/subset_sum_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
13.3 &nbsp; 子集和问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_backtracking/n_queens_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
13.4 &nbsp; N 皇后问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_backtracking/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
13.5 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_dynamic_programming/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22 15h-2v3c0 1.11-.89 2-2 2h-3v2l-3-3 3-3v2h3v-3h-2l3-3 3 3m0-11v4c0 1.1-.9 2-2 2H10v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2M4 8h4V4H4v4m0 2v4h4v-4H4m4 10v-4H4v4h4m6-12V4h-4v4h4m6-4h-4v4h4V4Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 14 章 &nbsp; 动态规划
1 year ago
</span>
</a>
1 year ago
1 year ago
<label class="md-nav__link " for="__nav_15">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 14 章 &nbsp; 动态规划
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/intro_to_dynamic_programming/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.1 &nbsp; 初探动态规划
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/dp_problem_features/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.2 &nbsp; DP 问题特性
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/dp_solution_pipeline/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.3 &nbsp; DP 解题思路
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/knapsack_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.4 &nbsp; 0-1 背包问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/unbounded_knapsack_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.5 &nbsp; 完全背包问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/edit_distance_problem/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.6 &nbsp; 编辑距离问题
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_dynamic_programming/summary/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
14.7 &nbsp; 小结
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
1 year ago
<a href="../../chapter_greedy/" class="md-nav__link ">
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 3c3.88 0 7 3.14 7 7 0 2.8-1.63 5.19-4 6.31V21H9v-3H8c-1.11 0-2-.89-2-2v-3H4.5c-.42 0-.66-.5-.42-.81L6 9.66A7.003 7.003 0 0 1 13 3m0-2C8.41 1 4.61 4.42 4.06 8.9L2.5 11h-.03l-.02.03c-.55.76-.62 1.76-.19 2.59.36.69 1 1.17 1.74 1.32V16c0 1.85 1.28 3.42 3 3.87V23h11v-5.5c2.5-1.67 4-4.44 4-7.5 0-4.97-4.04-9-9-9m4 7.83c0 1.54-1.36 2.77-3.42 4.64L13 14l-.58-.53C10.36 11.6 9 10.37 9 8.83c0-1.2.96-2.19 2.16-2.2h.04c.69 0 1.35.31 1.8.83.45-.52 1.11-.83 1.8-.83 1.2-.01 2.2.96 2.2 2.16v.04Z"/></svg>
1 year ago
<span class="md-ellipsis">
1 year ago
第 15 章 &nbsp; 贪心
1 year ago
</span>
</a>
1 year ago
<label class="md-nav__link " for="__nav_16">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 15 章 &nbsp; 贪心
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_greedy/greedy_algorithm/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
15.1 &nbsp; 贪心算法
1 year ago
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_greedy/fractional_knapsack_problem/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
15.2 &nbsp; 分数背包问题
1 year ago
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_greedy/max_capacity_problem/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
15.3 &nbsp; 最大容量问题
1 year ago
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_greedy/max_product_cutting_problem/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
15.4 &nbsp; 最大切分乘积问题
1 year ago
</span>
</a>
</li>
1 year ago
<li class="md-nav__item">
<a href="../../chapter_greedy/summary/" class="md-nav__link">
<span class="md-ellipsis">
1 year ago
15.5 &nbsp; 小结
1 year ago
</span>
</a>
</li>
1 year ago
</ul>
</nav>
</li>
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
<div class="md-nav__link md-nav__container">
<a href="../../chapter_appendix/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
<span class="md-ellipsis">
1 year ago
第 16 章 &nbsp; 附录
1 year ago
</span>
</a>
1 year ago
<label class="md-nav__link " for="__nav_17">
1 year ago
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_17">
<span class="md-nav__icon md-icon"></span>
1 year ago
第 16 章 &nbsp; 附录
1 year ago
</label>
<ul class="md-nav__list" data-md-scrollfix>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_appendix/installation/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
16.1 &nbsp; 编程环境安装
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
<a href="../../chapter_appendix/contribution/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
1 year ago
16.2 &nbsp; 一起参与创作
1 year ago
</span>
1 year ago
</a>
</li>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item">
1 year ago
<a href="../../chapter_appendix/terminology/" class="md-nav__link">
1 year ago
<span class="md-ellipsis">
16.3 &nbsp; 术语表
</span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a>
</li>
1 year ago
</ul>
</nav>
1 year ago
</li>
1 year ago
1 year ago
1 year ago
<li class="md-nav__item md-nav__item--nested">
1 year ago
1 year ago
1 year ago
1 year ago
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
1 year ago
1 year ago
1 year ago
<div class="md-nav__link md-nav__container">
<a href="../../chapter_reference/" class="md-nav__link ">
<span class="md-ellipsis">
参考文献
</span>
</a>
1 year ago
1 year ago
</div>
1 year ago
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_18">
1 year ago
<span class="md-nav__icon md-icon"></span>
参考文献
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
1 year ago
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1211" class="md-nav__link">
1 year ago
12.1.1 &nbsp; 如何判断分治问题
1 year ago
</a>
1 year ago
</li>
<li class="md-nav__item">
<a href="#1212" class="md-nav__link">
1 year ago
12.1.2 &nbsp; 通过分治提升效率
1 year ago
</a>
1 year ago
<nav class="md-nav" aria-label="12.1.2   通过分治提升效率">
1 year ago
<ul class="md-nav__list">
<li class="md-nav__item">
1 year ago
<a href="#1" class="md-nav__link">
1. &nbsp; 操作数量优化
1 year ago
</a>
</li>
<li class="md-nav__item">
1 year ago
<a href="#2" class="md-nav__link">
2. &nbsp; 并行计算优化
1 year ago
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
1 year ago
<a href="#1213" class="md-nav__link">
1 year ago
12.1.3 &nbsp; 分治常见应用
1 year ago
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
1 year ago
<!--
Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!-- Tags -->
<!-- Actions -->
1 year ago
<a href="https://github.com/krahets/hello-algo/tree/main/docs/chapter_divide_and_conquer/divide_and_conquer.md" title="编辑此页" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"/></svg>
</a>
1 year ago
<!--
Hack: check whether the content contains a h1 headline. If it doesn't, the
page title (or respectively site name) is used as the main headline.
-->
<!-- Page content -->
1 year ago
<h1 id="121">12.1 &nbsp; 分治算法<a class="headerlink" href="#121" title="Permanent link">&para;</a></h1>
1 year ago
<p>「分治 divide and conquer」全称分而治之是一种非常重要且常见的算法策略。分治通常基于递归实现包括“分”和“治”两个步骤。</p>
1 year ago
<ol>
1 year ago
<li><strong>分(划分阶段)</strong>:递归地将原问题分解为两个或多个子问题,直至到达最小子问题时终止。</li>
<li><strong>治(合并阶段)</strong>:从已知解的最小子问题开始,从底至顶地将子问题的解进行合并,从而构建出原问题的解。</li>
1 year ago
</ol>
1 year ago
<p>如图 12-1 所示,“归并排序”是分治策略的典型应用之一。</p>
1 year ago
<ol>
<li><strong></strong>:递归地将原数组(原问题)划分为两个子数组(子问题),直到子数组只剩一个元素(最小子问题)。</li>
1 year ago
<li><strong></strong>:从底至顶地将有序的子数组(子问题的解)进行合并,从而得到有序的原数组(原问题的解)。</li>
1 year ago
</ol>
1 year ago
<p><a class="glightbox" href="../divide_and_conquer.assets/divide_and_conquer_merge_sort.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="归并排序的分治策略" class="animation-figure" src="../divide_and_conquer.assets/divide_and_conquer_merge_sort.png" /></a></p>
1 year ago
<p align="center"> 图 12-1 &nbsp; 归并排序的分治策略 </p>
1 year ago
1 year ago
<h2 id="1211">12.1.1 &nbsp; 如何判断分治问题<a class="headerlink" href="#1211" title="Permanent link">&para;</a></h2>
1 year ago
<p>一个问题是否适合使用分治解决,通常可以参考以下几个判断依据。</p>
1 year ago
<ol>
12 months ago
<li><strong>问题可以分解</strong>:原问题可以分解成规模更小、类似的子问题,以及能够以相同方式递归地进行划分。</li>
<li><strong>子问题是独立的</strong>:子问题之间没有重叠,互不依赖,可以独立解决。</li>
<li><strong>子问题的解可以合并</strong>:原问题的解通过合并子问题的解得来。</li>
1 year ago
</ol>
12 months ago
<p>显然,归并排序满足以上三条判断依据。</p>
1 year ago
<ol>
12 months ago
<li><strong>问题可以分解</strong>:递归地将数组(原问题)划分为两个子数组(子问题)。</li>
1 year ago
<li><strong>子问题是独立的</strong>:每个子数组都可以独立地进行排序(子问题可以独立进行求解)。</li>
12 months ago
<li><strong>子问题的解可以合并</strong>:两个有序子数组(子问题的解)可以合并为一个有序数组(原问题的解)。</li>
1 year ago
</ol>
1 year ago
<h2 id="1212">12.1.2 &nbsp; 通过分治提升效率<a class="headerlink" href="#1212" title="Permanent link">&para;</a></h2>
12 months ago
<p><strong>分治不仅可以有效地解决算法问题,往往还可以提升算法效率</strong>。在排序算法中,快速排序、归并排序、堆排序相较于选择、冒泡、插入排序更快,就是因为它们应用了分治策略。</p>
1 year ago
<p>那么,我们不禁发问:<strong>为什么分治可以提升算法效率,其底层逻辑是什么</strong>?换句话说,将大问题分解为多个子问题、解决子问题、将子问题的解合并为原问题的解,这几步的效率为什么比直接解决原问题的效率更高?这个问题可以从操作数量和并行计算两方面来讨论。</p>
1 year ago
<h3 id="1">1. &nbsp; 操作数量优化<a class="headerlink" href="#1" title="Permanent link">&para;</a></h3>
12 months ago
<p>以“冒泡排序”为例,其处理一个长度为 <span class="arithmatex">\(n\)</span> 的数组需要 <span class="arithmatex">\(O(n^2)\)</span> 时间。假设我们按照图 12-2 所示的方式,将数组从中点处分为两个子数组,则划分需要 <span class="arithmatex">\(O(n)\)</span> 时间,排序每个子数组需要 <span class="arithmatex">\(O((n / 2)^2)\)</span> 时间,合并两个子数组需要 <span class="arithmatex">\(O(n)\)</span> 时间,总体时间复杂度为:</p>
1 year ago
<div class="arithmatex">\[
1 year ago
O(n + (\frac{n}{2})^2 \times 2 + n) = O(\frac{n^2}{2} + 2n)
1 year ago
\]</div>
1 year ago
<p><a class="glightbox" href="../divide_and_conquer.assets/divide_and_conquer_bubble_sort.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="划分数组前后的冒泡排序" class="animation-figure" src="../divide_and_conquer.assets/divide_and_conquer_bubble_sort.png" /></a></p>
1 year ago
<p align="center"> 图 12-2 &nbsp; 划分数组前后的冒泡排序 </p>
1 year ago
<p>接下来,我们计算以下不等式,其左边和右边分别为划分前和划分后的操作总数:</p>
<div class="arithmatex">\[
\begin{aligned}
n^2 &amp; &gt; \frac{n^2}{2} + 2n \newline
n^2 - \frac{n^2}{2} - 2n &amp; &gt; 0 \newline
n(n - 4) &amp; &gt; 0
\end{aligned}
\]</div>
1 year ago
<p><strong>这意味着当 <span class="arithmatex">\(n &gt; 4\)</span> 时,划分后的操作数量更少,排序效率应该更高</strong>。请注意,划分后的时间复杂度仍然是平方阶 <span class="arithmatex">\(O(n^2)\)</span> ,只是复杂度中的常数项变小了。</p>
12 months ago
<p>进一步想,<strong>如果我们把子数组不断地再从中点处划分为两个子数组</strong>,直至子数组只剩一个元素时停止划分呢?这种思路实际上就是“归并排序”,时间复杂度为 <span class="arithmatex">\(O(n \log n)\)</span></p>
1 year ago
<p>再思考,<strong>如果我们多设置几个划分点</strong>,将原数组平均划分为 <span class="arithmatex">\(k\)</span> 个子数组呢?这种情况与“桶排序”非常类似,它非常适合排序海量数据,理论上时间复杂度可以达到 <span class="arithmatex">\(O(n + k)\)</span></p>
1 year ago
<h3 id="2">2. &nbsp; 并行计算优化<a class="headerlink" href="#2" title="Permanent link">&para;</a></h3>
1 year ago
<p>我们知道,分治生成的子问题是相互独立的,<strong>因此通常可以并行解决</strong>。也就是说,分治不仅可以降低算法的时间复杂度,<strong>还有利于操作系统的并行优化</strong></p>
<p>并行优化在多核或多处理器的环境中尤其有效,因为系统可以同时处理多个子问题,更加充分地利用计算资源,从而显著减少总体的运行时间。</p>
12 months ago
<p>比如在图 12-3 所示的“桶排序”中,我们将海量的数据平均分配到各个桶中,则可所有桶的排序任务分散到各个计算单元,完成后再合并结果。</p>
1 year ago
<p><a class="glightbox" href="../divide_and_conquer.assets/divide_and_conquer_parallel_computing.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="桶排序的并行计算" class="animation-figure" src="../divide_and_conquer.assets/divide_and_conquer_parallel_computing.png" /></a></p>
1 year ago
<p align="center"> 图 12-3 &nbsp; 桶排序的并行计算 </p>
1 year ago
1 year ago
<h2 id="1213">12.1.3 &nbsp; 分治常见应用<a class="headerlink" href="#1213" title="Permanent link">&para;</a></h2>
1 year ago
<p>一方面,分治可以用来解决许多经典算法问题。</p>
1 year ago
<ul>
12 months ago
<li><strong>寻找最近点对</strong>:该算法首先将点集分成两部分,然后分别找出两部分中的最近点对,最后找出跨越两部分的最近点对。</li>
<li><strong>大整数乘法</strong>:例如 Karatsuba 算法,它将大整数乘法分解为几个较小的整数的乘法和加法。</li>
<li><strong>矩阵乘法</strong>:例如 Strassen 算法,它将大矩阵乘法分解为多个小矩阵的乘法和加法。</li>
<li><strong>汉诺塔问题</strong>:汉诺塔问题可以通过递归解决,这是典型的分治策略应用。</li>
<li><strong>求解逆序对</strong>:在一个序列中,如果前面的数字大于后面的数字,那么这两个数字构成一个逆序对。求解逆序对问题可以利用分治的思想,借助归并排序进行求解。</li>
1 year ago
</ul>
1 year ago
<p>另一方面,分治在算法和数据结构的设计中应用非常广泛。</p>
1 year ago
<ul>
12 months ago
<li><strong>二分查找</strong>:二分查找是将有序数组从中点索引处分为两部分,然后根据目标值与中间元素值比较结果,决定排除哪一半区间,并在剩余区间执行相同的二分操作。</li>
<li><strong>归并排序</strong>:本节开头已介绍,不再赘述。</li>
<li><strong>快速排序</strong>:快速排序是选取一个基准值,然后把数组分为两个子数组,一个子数组的元素比基准值小,另一子数组的元素比基准值大,再对这两部分进行相同的划分操作,直至子数组只剩下一个元素。</li>
1 year ago
<li><strong>桶排序</strong>:桶排序的基本思想是将数据分散到多个桶,然后对每个桶内的元素进行排序,最后将各个桶的元素依次取出,从而得到一个有序数组。</li>
12 months ago
<li><strong></strong>例如二叉搜索树、AVL 树、红黑树、B 树、B+ 树等,它们的查找、插入和删除等操作都可以视为分治策略的应用。</li>
1 year ago
<li><strong></strong>:堆是一种特殊的完全二叉树,其各种操作,如插入、删除和堆化,实际上都隐含了分治的思想。</li>
12 months ago
<li><strong>哈希表</strong>:虽然哈希表来并不直接应用分治,但某些哈希冲突解决方案间接应用了分治策略,例如,链式地址中的长链表会被转化为红黑树,以提升查询效率。</li>
1 year ago
</ul>
<p>可以看出,<strong>分治是一种“润物细无声”的算法思想</strong>,隐含在各种算法与数据结构之中。</p>
1 year ago
<!-- Source file information -->
1 year ago
1 year ago
<!-- Was this page helpful? -->
1 year ago
1 year ago
<!-- Previous and next pages link -->
<nav
class="md-footer__inner md-grid"
aria-label="页脚"
>
<!-- Link to previous page -->
<a
href="../"
class="md-footer__link md-footer__link--prev"
aria-label="上一页: 第 12 章 &amp;nbsp; 分治"
rel="prev"
>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
上一页
</span>
<div class="md-ellipsis">
第 12 章 &nbsp; 分治
</div>
</div>
</a>
<!-- Link to next page -->
<a
href="../binary_search_recur/"
class="md-footer__link md-footer__link--next"
aria-label="下一页: 12.2 &amp;nbsp; 分治搜索策略"
rel="next"
>
<div class="md-footer__title">
<span class="md-footer__direction">
下一页
</span>
<div class="md-ellipsis">
12.2 &nbsp; 分治搜索策略
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
<!-- Comment system -->
1 year ago
1 year ago
1 year ago
<h5 align="center" id="__comments">欢迎在评论区留下你的见解、疑惑或建议</h5>
1 year ago
1 year ago
<!-- Insert generated snippet here -->
<script
src="https://giscus.app/client.js"
data-repo="krahets/hello-algo"
data-repo-id="R_kgDOIXtSqw"
data-category="Announcements"
data-category-id="DIC_kwDOIXtSq84CSZk_"
data-mapping="pathname"
data-strict="1"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="preferred_color_scheme"
data-lang="zh-CN"
crossorigin="anonymous"
async
>
</script>
<!-- Synchronize Giscus theme with palette -->
<script>
var giscus = document.querySelector("script[src*=giscus]")
/* Set palette on initial load */
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
1 year ago
var theme = palette.color.scheme === "slate" ? "dark_dimmed" : "light"
1 year ago
giscus.setAttribute("data-theme", theme)
}
/* Register event handlers after documented loaded */
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function() {
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
1 year ago
var theme = palette.color.scheme === "slate" ? "dark_dimmed" : "light"
1 year ago
/* Instruct Giscus to change theme */
var frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
}
})
})
</script>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
1 year ago
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
回到页面顶部
</button>
</main>
1 year ago
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../" class="md-footer__link md-footer__link--prev" aria-label="上一页: 第 12 章 &amp;nbsp; 分治" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
上一页
</span>
<div class="md-ellipsis">
第 12 章 &nbsp; 分治
</div>
</div>
</a>
<a href="../binary_search_recur/" class="md-footer__link md-footer__link--next" aria-label="下一页: 12.2 &amp;nbsp; 分治搜索策略" rel="next">
<div class="md-footer__title">
<span class="md-footer__direction">
下一页
</span>
<div class="md-ellipsis">
12.2 &nbsp; 分治搜索策略
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
1 year ago
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
1 year ago
Copyright &copy; 2022 - 2023 Krahets
1 year ago
</div>
</div>
<div class="md-social">
<a href="https://github.com/krahets" target="_blank" rel="noopener" title="github.com" class="md-social__link">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><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"/></svg>
1 year ago
</a>
<a href="https://twitter.com/krahets" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
1 year ago
</a>
<a href="https://leetcode.cn/u/jyd/" target="_blank" rel="noopener" title="leetcode.cn" class="md-social__link">
1 year ago
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><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.3l89.3 89.4-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"/></svg>
1 year ago
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
1 year ago
<script id="__config" type="application/json">{"base": "../..", "features": ["content.action.edit", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "navigation.indexes", "navigation.instant", "navigation.top", "navigation.footer", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../../assets/javascripts/workers/search.a264c092.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}}</script>
1 year ago
1 year ago
<script src="../../assets/javascripts/bundle.4e0fa4ba.min.js"></script>
1 year ago
1 year ago
<script src="../../javascripts/mathjax.js"></script>
1 year ago
1 year ago
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
1 year ago
1 year ago
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
1 year ago
1 year ago
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": false, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "none"});})</script></body>
1 year ago
</html>