diff --git a/Code/Code.vcxproj b/Code/Code.vcxproj
index 13aa75f..a3537c3 100644
--- a/Code/Code.vcxproj
+++ b/Code/Code.vcxproj
@@ -156,6 +156,7 @@
+
diff --git a/Code/sort.h b/Code/sort.h
index 1ac57a9..09bc3cb 100644
--- a/Code/sort.h
+++ b/Code/sort.h
@@ -76,4 +76,184 @@ int ShellSort(element_type data[], int length) {
}
}
}
+ return 0;
+}
+
+// 冒泡排序
+int BubbleSort(element_type data[], int length) {
+ for (int i = 0; i < length - 1; i++) {
+ // 设置一个标志表示本趟冒泡排序是否发生交换
+ int flag = 0;
+ element_type temp;
+ for (int j = length - 1; j > i; j--) {
+ if (data[j - 1] > data[j]) {
+ temp = data[j - 1];
+ data[j - 1] = data[j];
+ data[j] = temp;
+ flag = 1;
+ }
+ }
+ // 如果本次遍历后没有发生交换,就代表已经有序
+ if (flag == 0) {
+ return 0;
+ }
+ }
+ return 0;
+}
+
+// 快速排序划分
+int QuickPart(element_type data[], int low, int high) {
+ // 选择data[low]作为基准
+ int pivot = data[low];
+ // 用low和high搜索基准的最终位置
+ while (low < high) {
+ // 如果当前high指向的元素大于基准就移动high指针
+ while (low < high && data[high] >= pivot) {
+ --high;
+ }
+ // 比标准小的元素移动到low指向的元素
+ data[low] = data[high];
+ // 交换移动指针
+ // 如果当前low指向的元素小于基准就移动low指针
+ while (low < high && data[low] <= pivot) {
+ ++low;
+ }
+ // 比标准大的元素移动到high指向的元素
+ data[high] = data[low];
+ }
+ // 当low和high指向同一个元素时就把基准放到这个位置
+ data[low] = pivot;
+ // 返回存放基准元素的位置
+ return low;
+}
+
+// 快速排序
+int QuickSort(element_type data[], int low, int high) {
+ // 递归跳出条件,即low=high,表中只有一个元素
+ if (low < high) {
+ // 进行划分
+ int pivot = QuickPart(data, low, high);
+ // 对划分的左子表进行处理
+ QuickSort(data, low, pivot - 1);
+ // 对划分的右子表进行处理
+ QuickSort(data, pivot + 1, high);
+ }
+ return 0;
+}
+
+// 简单选择排序
+int SimpleSelectSort(element_type data[], int length) {
+ element_type temp;
+ // 一共进行n-1趟
+ for (int i = 0; i < length - 1; i++) {
+ // 记录最小元素的位置
+ int min = i;
+ // 在data[i,length-1]中选择最小的元素
+ for (int j = i + 1; j < length; j++) {
+ // 更新最小元素位置
+ if (data[j] < data[min]) {
+ min = j;
+ }
+ }
+ // 如果当前最小元素的值不等于当前指向位置就交换
+ if (min != i) {
+ temp = i;
+ i = min;
+ min = i;
+ }
+ }
+}
+
+// 建立大根堆
+int BuildMaxHeap(element_type data[], int length) {
+ for (int i = length / 2; i > 0; i--) {
+ MaxHeadAdjust(data, i, length);
+ }
+ return 0;
+}
+
+// 以node为根的子树调整为大根堆
+int MaxHeadAdjust(element_type data[], int node, int length) {
+ // 使用data[0]暂存子树根结点
+ data[0] = data[node];
+ // 沿key较大的子结点向下筛选
+ for (int i = 2 * node; i <= length; i *= 2) {
+ // 取key较大的子节点的下标
+ if (i < length && data[i] < data[i + 1]) {
+ i++;
+ }
+ // 如果根大于左右子结点则代表不用调整
+ if (data[0] >= data[i]) {
+ break;
+ }
+ else {
+ // 将data[i]放到父结点上
+ data[node] = data[i];
+ // 修改node值,以继续向下筛选
+ node = i;
+ }
+ }
+ // 被筛选结点的值最后放到最后的位置
+ data[node] = data[0];
+ return 0;
+}
+
+// 大根堆的堆排序
+int MaxHeapSort(element_type data[], int length) {
+ // 初始化建立一个大根堆
+ BuildMaxHeap(data, length);
+ // 建立一个交换变量
+ element_type temp;
+ // n-1趟交换和建立的过程
+ for (int i = length; i > 1; i--) {
+ // 堆顶元素与堆底元素互换
+ temp = data[i];
+ data[i] = data[1];
+ data[1] = temp;
+ // 把剩余的待排序元素调整为堆
+ MaxHeadAdjust(data, i, i - 1);
+ }
+ return 0;
+}
+
+// 归并排序辅助数组
+element_type* aid = (element_type*)malloc(MAXSIZE * sizeof(element_type));
+
+// data[low,mid]和data[mid+1,high]各自有序,将两个部分归并
+int Merge(element_type data[], int low, int mid, int high) {
+ int i, j, k;
+ for (k - low; k <= high; k++) {
+ // 将data中所有元素复制到辅助数组中
+ aid[k] = data[k];
+ }
+ for (i = low, j = mid + 1, k = i; i <= mid && j <= high; k++) {
+ if (aid[i] <= aid[j]) {
+ data[k] = aid[i++];
+ }
+ else {
+ data[k] = aid[j++];
+ }
+ }
+ while (i <= mid) {
+ data[k++] = aid[i++];
+ }
+ while (j <= high) {
+ data[k++] = aid[j++];
+ }
+ return 0;
+}
+
+// 归并排序
+int MergeSort(element_type data[], int low, int high) {
+ if (low < high) {
+ // 从中间划分
+ int mid = (low + high) / 2;
+ // 对左半部分归并排序
+ MergeSort(data, low, mid);
+ // 对右半部分归并排序
+ MergeSort(data, mid + 1, high);
+ // 最后一次归并全部
+ Merge(data, low, mid, high);
+ }
+ return 0;
}
\ No newline at end of file
diff --git a/Data-Structrue/graph.md b/Data-Structrue/graph.md
index b02bcf1..4aae555 100644
--- a/Data-Structrue/graph.md
+++ b/Data-Structrue/graph.md
@@ -192,9 +192,9 @@
骞垮害浼樺厛閬嶅巻杩囩▼锛
-+ 璁块棶椤剁偣v銆
-+ 璁块棶v鐨勬墍鏈夋湭琚闂殑閭绘帴鐐广
-+ 渚濇浠庤繖浜涢偦鎺ョ偣锛堝湪姝ラ鈶′腑璁块棶鐨勯《鐐癸級鍑哄彂锛岃闂畠浠殑鎵鏈夋湭琚闂殑閭绘帴鐐; 渚濇绫绘帹锛岀洿鍒板浘涓墍鏈夎闂繃鐨勯《鐐圭殑閭绘帴鐐归兘琚闂
+1. 璁块棶椤剁偣v銆
+2. 璁块棶v鐨勬墍鏈夋湭琚闂殑閭绘帴鐐广
+3. 渚濇浠庤繖浜涢偦鎺ョ偣锛堝湪姝ラ浜屼腑璁块棶鐨勯《鐐癸級鍑哄彂锛岃闂畠浠殑鎵鏈夋湭琚闂殑閭绘帴鐐; 渚濇绫绘帹锛岀洿鍒板浘涓墍鏈夎闂繃鐨勯《鐐圭殑閭绘帴鐐归兘琚闂
閭绘帴鐭╅樀瀹炵幇鏃剁殑鏃堕棿澶嶆潅搴︿负$O(\vert V\vert^2)$锛岄偦鎺ヨ〃瀹炵幇鏃剁殑鏃堕棿澶嶆潅搴︿负$O(\vert V\vert+\vert E\vert)$锛涚┖闂村鏉傚害涓$O(\vert V\vert)$銆
@@ -207,10 +207,10 @@
娣卞害浼樺厛閬嶅巻杩囩▼锛
-+ 璁块棶椤剁偣v銆
-+ 渚濇浠巚鐨勬湭琚闂殑閭绘帴鐐瑰嚭鍙戯紝瀵瑰浘杩涜娣卞害浼樺厛閬嶅巻銆
-+ 鐩磋嚦鍥句腑鍜寁鏈夎矾寰勭浉閫氱殑椤剁偣閮借璁块棶銆
-+ 鑻ユ鏃跺浘涓皻鏈夐《鐐规湭琚闂紝鍒欎粠涓涓湭琚闂殑椤剁偣鍑哄彂锛岄噸鏂拌繘琛屾繁搴︿紭鍏堥亶鍘嗭紝鐩村埌鍥句腑鎵鏈夐《鐐瑰潎琚闂繃涓烘銆
+1. 璁块棶椤剁偣v銆
+2. 渚濇浠巚鐨勬湭琚闂殑閭绘帴鐐瑰嚭鍙戯紝瀵瑰浘杩涜娣卞害浼樺厛閬嶅巻銆
+3. 鐩磋嚦鍥句腑鍜寁鏈夎矾寰勭浉閫氱殑椤剁偣閮借璁块棶銆
+4. 鑻ユ鏃跺浘涓皻鏈夐《鐐规湭琚闂紝鍒欎粠涓涓湭琚闂殑椤剁偣鍑哄彂锛岄噸鏂拌繘琛屾繁搴︿紭鍏堥亶鍘嗭紝鐩村埌鍥句腑鎵鏈夐《鐐瑰潎琚闂繃涓烘銆
閭绘帴鐭╅樀瀹炵幇鏃剁殑鏃堕棿澶嶆潅搴︿负$O(\vert V\vert^2)$锛岄偦鎺ヨ〃瀹炵幇鏃剁殑鏃堕棿澶嶆潅搴︿负$O(\vert V\vert+\vert E\vert)$锛涚┖闂村鏉傚害涓$O(\vert V\vert)$銆
@@ -277,7 +277,7 @@
1. 浠$v_0$寮濮嬶紝鍒濆鍖栦笁涓暟缁勶細鏍囪鍚勯《鐐规槸鍚﹀凡鎵惧埌鏈鐭矾寰勶紱鏈鐭矾寰勯暱搴︼紱鏈鐭矾寰勪笂鐨勫墠椹便
2. 閬嶅巻鎵鏈夌粨鐐癸紝鎵惧埌杩樻病纭畾鏈鐭矾寰勶紝涓旀渶鐭矾寰勯暱搴﹀兼渶灏忕殑鐨勪竴涓《鐐癸紝杩欏氨纭畾浜嗕笅涓涓渶鐭矾寰勭殑缁撶偣锛屼护鍏跺悇椤剁偣鏄惁宸叉壘鍒版渶鐭矾寰勭殑鍊间负true銆
3. 妫鏌ユ墍鏈夐偦鎺ヨ繖涓粨鐐圭殑鍏朵粬缁撶偣锛岃嫢鍏剁偣杩樻病鏈夋壘鍒版渶鐭矾寰勶紝鍒欐洿鏂版渶鐭矾寰勯暱搴﹀间笌鏈鐭矾寰勪笂鍓嶉┍鐨勫笺
-4. 閲嶅姝ラ2鍐嶆寰幆閬嶅巻鎵鏈夌粨鐐瑰苟鎵惧埌娌$‘瀹氭渶鐭矾寰勫垯鏈鐭矾寰勯暱搴︽渶灏忕殑椤剁偣銆
+4. 閲嶅姝ラ浜屽啀娆″惊鐜亶鍘嗘墍鏈夌粨鐐瑰苟鎵惧埌娌$‘瀹氭渶鐭矾寰勫垯鏈鐭矾寰勯暱搴︽渶灏忕殑椤剁偣銆
Dijkstra绠楁硶涓嶱rim绠楁硶绫讳技锛岄兘鏄紭鍏堜笌鏈鐭殑璺緞缁撳悎銆
@@ -331,13 +331,13 @@ AOV缃戯細鐢―AG鍥捐〃绀轰竴涓伐绋嬶紝椤剁偣琛ㄧず娲诲姩锛屾湁鍚戣竟$$
1. 浠嶢OV缃戜腑閫夋嫨涓涓病鏈夊墠椹辩殑鍏ュ害涓0鐨勯《鐐瑰苟杈撳嚭銆
2. 浠庣綉涓垹闄よ椤剁偣鍜屾墍鏈変互瀹冧负璧风偣鐨勬湁鍚戣竟銆
-3. 閲嶅姝ラ1鍜2鐩村埌褰撳墠鐨凙OV缃戜负绌烘垨褰撳墠缃戜腑涓嶅瓨鍦ㄦ棤鍓嶉┍鐨勯《鐐逛负姝€
+3. 閲嶅姝ラ涓鍜屼簩鐩村埌褰撳墠鐨凙OV缃戜负绌烘垨褰撳墠缃戜腑涓嶅瓨鍦ㄦ棤鍓嶉┍鐨勯《鐐逛负姝€
閫嗘嫇鎵戞帓搴忕殑瀹炵幇锛
1. 浠嶢OV缃戜腑閫夋嫨涓涓病鏈夊悗缁х殑鍑哄害涓0鐨勯《鐐瑰苟杈撳嚭銆
2. 浠庣綉涓垹闄よ椤剁偣鍜屾墍鏈変互瀹冧负璧风偣鐨勬湁鍚戣竟銆
-3. 閲嶅姝ラ1鍜2鐩村埌褰撳墠鐨凙OV缃戜负绌烘垨褰撳墠缃戜腑涓嶅瓨鍦ㄦ棤鍓嶉┍鐨勯《鐐逛负姝€
+3. 閲嶅姝ラ涓鍜屼簩鐩村埌褰撳墠鐨凙OV缃戜负绌烘垨褰撳墠缃戜腑涓嶅瓨鍦ㄦ棤鍓嶉┍鐨勯《鐐逛负姝€
### 鍏抽敭璺緞
diff --git a/Data-Structrue/sort.md b/Data-Structrue/sort.md
index 8e1ce5a..5de0ab7 100644
--- a/Data-Structrue/sort.md
+++ b/Data-Structrue/sort.md
@@ -11,17 +11,23 @@
## 鎻掑叆鎺掑簭
+鎻掑叆鎺掑簭灏辨槸灏嗛夊畾鐨勭洰鏍囧兼彃鍏ュ埌瀵瑰簲鐨勪綅缃
+
### 鐩存帴鎻掑叆鎺掑簭
+#### 鐩存帴鎻掑叆鎺掑簭鐨勮繃绋
+
姣忔灏嗕竴涓緟鎺掑簭鐨勮褰曟寜鍏跺叧閿瓧澶у皬鎻掑叆鍒板墠闈㈠凡鎺掑ソ搴忕殑瀛愬簭鍒椾腑锛岀洿鍒板叏閮ㄨ褰曟彃鍏ュ畬鎴愪负姝€
+#### 鐩存帴鎻掑叆鎺掑簭鐨勬ц兘
+
绌洪棿澶嶆潅搴︿负$O(1)$銆
-鏃堕棿澶嶆潅搴︿富瑕佹潵鑷姣斿叧閿瓧锛岀Щ鍔ㄥ厓绱狅紝鑻ユ湁n涓厓绱狅紝鍒欓渶瑕乶-1瓒熷鐞嗐
+鏃堕棿澶嶆潅搴︿富瑕佹潵鑷姣斿叧閿瓧锛岀Щ鍔ㄥ厓绱狅紝鑻ユ湁$n$涓厓绱狅紝鍒欓渶瑕$n-1$瓒熷鐞嗐
-鏈濂芥儏鍐垫槸鍘熸湰鐨勫簭鍒楀氨鏄湁搴忕殑锛岄渶瑕乶-1瓒熷鐞嗭紝姣忔鍙渶瑕佸姣斾竴娆″叧閿瓧锛屼笉鐢ㄧЩ鍔ㄥ厓绱狅紝鏃堕棿澶嶆潅搴︿负$O(n)$銆
+鏈濂芥儏鍐垫槸鍘熸湰鐨勫簭鍒楀氨鏄湁搴忕殑锛岄渶瑕$n-1$瓒熷鐞嗭紝姣忔鍙渶瑕佸姣斾竴娆″叧閿瓧锛屼笉鐢ㄧЩ鍔ㄥ厓绱狅紝鏃堕棿澶嶆潅搴︿负$O(n)$銆
-鏈鍧忔儏鍐垫槸鍘熸湰鐨勫簭鍒楁槸閫嗗簭鐨勶紝闇瑕乶-1瓒熷鐞嗭紝绗琲瓒熷鐞嗛渶瑕佸姣斿叧閿瓧i+1娆★紝绉诲姩鍏冪礌i+2娆★紝鏃堕棿澶嶆潅搴︽槸$O(n^2)$銆
+鏈鍧忔儏鍐垫槸鍘熸湰鐨勫簭鍒楁槸閫嗗簭鐨勶紝闇瑕$n-1$瓒熷鐞嗭紝绗$i$瓒熷鐞嗛渶瑕佸姣斿叧閿瓧$i+1$娆★紝绉诲姩鍏冪礌$i+2$娆★紝鏃堕棿澶嶆潅搴︽槸$O(n^2)$銆
鎵浠ュ钩鍧囨椂闂村鏉傚害鏄$O(n^2)$銆
@@ -31,12 +37,16 @@
### 浜屽垎鎻掑叆鎺掑簭
+#### 浜屽垎鎻掑叆鎺掑簭鐨勮繃绋
+
涔熺О涓烘姌鍗婃彃鍏ユ帓搴忥紝鏄鐩存帴鎻掑叆鎺掑簭鐨勪紭鍖栵紝鍦ㄥ鎵炬彃鍏ヤ綅缃椂浣跨敤浜屽垎鏌ユ壘鐨勬柟寮忋
褰揹ata[mid]==data[i]鏃讹紝涓轰簡淇濊瘉绠楁硶鐨勭ǔ瀹氭э紝浼氱户缁湪mid鎵鎸囦綅缃彸杈瑰鎵炬彃鍏ヤ綅缃
褰搇ow>high鏃跺仠姝㈡姌鍗婃煡鎵撅紝骞跺皢[low,i-1]鍐呯殑鍏冪礌鍏ㄩ儴鍙崇Щ锛屽苟鎶婂厓绱犲艰祴鍊煎埌low鎵鎸囩殑浣嶇疆銆
+#### 浜屽垎鎻掑叆鎺掑簭鐨勬ц兘
+
绌洪棿澶嶆潅搴︿负$O(1)$銆
浜屽垎鎻掑叆鎺掑簭鏄ǔ瀹氱殑銆
@@ -45,12 +55,16 @@
### 甯屽皵鎺掑簭
+#### 甯屽皵鎺掑簭鐨勮繃绋
+
甯屽皵鎺掑簭涔熸槸瀵圭洿鎺ユ彃鍏ユ帓搴忕殑浼樺寲銆傜洿鎺ユ彃鍏ユ帓搴忓浜庡熀鏈湁搴忕殑搴忓垪鎺掑簭鏁堟灉杈冨ソ锛屾墍浠ュ氨甯屾湜搴忓垪鑳藉敖鍙兘鍩烘湰鏈夊簭銆備粠鑰屽笇灏旀帓搴忕殑鎬濇兂灏辨槸鍏堣拷姹傝〃涓厓绱犻儴鍒嗘湁搴忥紝鐒跺悗閫愭笎閫艰繎鍏ㄥ眬鏈夊簭銆
鍏堝皢鏁翠釜寰呮帓搴忓厓绱犲簭鍒楀垎鍓叉垚鑻ュ共涓瓙搴忓垪锛堢敱鐩搁殧鏌愪釜鈥滃閲忊濈殑鍏冪礌缁勬垚鐨勶級锛屽垎鍒繘琛岀洿鎺ユ彃鍏ユ帓搴忥紝鐒跺悗缂╁皬澧為噺閲嶅涓婅堪杩囩▼锛岀洿鍒板閲忎负1銆
澧為噺搴忓垪鐨勯夋嫨寤鸿鏄涓瓒熼夋嫨鍏冪礌涓暟鐨勪竴鍗婏紝鍚庨潰涓嶆柇缂╁皬鍒板師鏉ョ殑涓鍗娿
+#### 甯屽皵鎺掑簭鐨勬ц兘
+
绌洪棿澶嶆潅搴︿负$O(1)$銆
鑰屾椂闂村鏉傚害鍜屽閲忓簭鍒楃殑閫夋嫨鏈夊叧锛岀洰鍓嶆棤娉曚娇鐢ㄥ睘鎬ф墜娈佃瘉鏄庣‘鍒囩殑鏃堕棿澶嶆潅搴︺傛渶鍧忔椂闂村鏉傚害涓$O(n^2)$锛屽湪鏌愪釜鑼冨洿鍐呭彲浠ヨ揪鍒$O(n^{1.3})$銆
@@ -65,4 +79,258 @@
### 鍐掓场鎺掑簭
-浠庡悗寰鍓嶆垨浠庡墠寰鍚庝袱涓ゆ瘮杈冪浉閭诲厓绱犵殑鍊硷紝鑻ラ嗗簭鍒欎氦鎹㈣繖涓や釜鍊硷紝鐩村埌搴忓垪姣旇緝瀹屻傝繖涓繃绋嬫槸涓瓒熷啋娉℃帓搴忋傛瘡涓瓒熼兘浼氳鍏抽敭瀛楁渶灏忔垨鏈澶х殑涓涓厓绱犲埌鏈帓搴忛槦鍒楃殑绗竴涓垨鏈鍚庝竴涓
\ No newline at end of file
+#### 鍐掓场鎺掑簭鐨勮繃绋
+
+浠庡悗寰鍓嶆垨浠庡墠寰鍚庝袱涓ゆ瘮杈冪浉閭诲厓绱犵殑鍊硷紝鑻ラ嗗簭鍒欎氦鎹㈣繖涓や釜鍊硷紝濡傛灉鐩哥瓑涔熶笉浜ゆ崲锛岀洿鍒板簭鍒楁瘮杈冨畬銆傝繖涓繃绋嬫槸涓瓒熷啋娉℃帓搴忥紝绗$i$瓒熷悗绗琲涓厓绱犱細宸茬粡鎺掑簭瀹屾垚銆傛瘡涓瓒熼兘浼氳鍏抽敭瀛楁渶灏忔垨鏈澶х殑涓涓厓绱犲埌鏈帓搴忛槦鍒楃殑绗竴涓垨鏈鍚庝竴涓備竴鍏遍渶瑕$n-1$瓒熸帓搴忋
+
+#### 鍐掓场鎺掑簭鐨勬ц兘
+
+绌洪棿澶嶆潅搴︿负$O(1)$銆
+
+鏈濂芥儏鍐典笅鍗虫湰韬簭鍒楁湁搴忥紝鍒欐瘮杈冩鏁版槸n-1锛屼氦鎹㈡鏁版槸0锛屼粠鑰屾椂闂村鏉傚害鏄$O(n)$銆
+
+鏈鍧忔儏鍐垫槸閫嗗簭鎯呭喌锛屾瘮杈冩鏁板拰浜ゆ崲娆℃暟閮芥槸$\dfrac{n(n-1)}{2}$锛屾墍浠ユ椂闂村鏉傚害鏄$O(n^2)$銆
+
+浠庤屽钩鍧囨椂闂村鏉傚害鏄$O(n^2)$銆
+
+鍐掓场鎺掑簭鏄ǔ瀹氱殑銆
+
+鍐掓场鎺掑簭鍙互鐢ㄤ簬閾捐〃銆
+
+### 蹇熸帓搴
+
+蹇熸帓搴忓湪鍐呴儴鎺掑簭涓殑琛ㄧ幇纭疄鏄渶濂界殑銆傛帓搴忚繃绋嬬被浼间簬鏋勫缓浜屽弶鎺掑簭鏍戙
+
+#### 蹇熸帓搴忕殑杩囩▼
+
+鍙栧緟鎺掑簭搴忓垪涓殑鏌愪釜鍏冪礌pivot浣滀负鍩哄噯锛堜竴鑸彇绗竴涓厓绱狅級锛岄氳繃涓瓒熸帓搴忥紝灏嗗緟鎺掑厓绱犲垎涓哄乏鍙充袱涓瓙搴忓垪锛屽乏瀛愬簭鍒楀厓绱犵殑鍏抽敭瀛楀潎灏忎簬鎴栫瓑浜庡熀鍑嗗厓绱犵殑鍏抽敭瀛楋紝鍙冲瓙搴忓垪鐨勫叧閿瓧鍒欏ぇ浜庡熀鍑嗗厓绱犵殑鍏抽敭瀛楋紝鐒跺悗鍒嗗埆瀵逛袱涓瓙搴忓垪缁х画杩涜鎺掑簭锛岀洿鑷虫暣涓簭鍒楁湁搴忋
+
+1. 鍏堥夋嫨涓煎仛鏍囨潌锛屾妸鏍囨潌鏀惧叆pivot锛屾瘮鏍囨潌灏忕殑鏀惧乏杈癸紝澶х殑鏀惧彸杈广
+2. 鍒濆鏃讹紝浠igh鎸囧悜搴忓垪鏈鍙宠竟鐨勫硷紝low鎸囧悜搴忓垪鏈宸﹁竟鐨勫笺
+3. 鐒跺悗浠巋igh寮濮嬶紝褰撻亣鍒版瘮鏍囨潌澶х殑鍊兼椂high--銆
+4. 褰撻亣鍒版瘮鏍囨潌灏忕殑鍊硷紝灏卞彇鍑鸿繖涓兼斁鍏ュ綋鍓峫ow鎵鎸囩殑浣嶇疆銆
+5. 鐒跺悗high涓嶅姩锛宭ow++寮濮嬬Щ鍔ㄣ
+6. 鑻ow鎵鎸囧悜鐨勫兼瘮鏍囨潌灏忥紝low++銆
+7. 鑻ow鎵鎸囧悜鐨勫兼瘮鏍囨潌澶э紝鍒欐斁鍏ュ綋鍓峢igh鎵鎸囧悜鐨勪綅缃
+8. 鐒跺悗low涓嶅姩锛宧igh--寮濮嬬Щ鍔ㄣ傚洖鍒版楠や笁寮濮嬫墽琛屻
+9. 褰搇ow=high鏃惰〃绀簂ow鍜宧igh涔嬪墠鐨勫厓绱犻兘姣斿熀鍑嗗皬锛宭ow鍜宧igh涔嬪悗鐨勫厓绱犻兘姣斿熀鍑嗗ぇ锛屽畬鎴愪簡涓娆″垝鍒嗐傜劧鍚庢妸鍩哄噯鍏冪礌鏀惧叆low鍜宧igh鎸囧悜鐨勪綅缃
+10. 涓嶆柇浜ゆ浛浣跨敤low鍜宧igh鎸囬拡杩涜瀵规瘮銆傚宸﹀彸瀛愬簭鍒楄繘琛屽悓鏍风殑閫掑綊鎿嶄綔鍗冲彲锛屼粠姝ラ涓夊紑濮嬨傝嫢宸﹀彸涓や釜瀛愬簭鍒楃殑鍏冪礌鏁伴噺绛変簬涓锛屽垯鏃犻渶鍐嶅垝鍒嗐
+
+#### 蹇熸帓搴忕殑鎬ц兘
+
+鐢变簬蹇熸帓搴忎娇鐢ㄤ簡閫掑綊锛屾墍浠ラ渶瑕侀掑綊宸ヤ綔鏍堬紝绌洪棿澶嶆潅搴︿笌閫掑綊灞傛暟鐩稿叧锛屾墍浠ヤ负$O(閫掑綊灞傛暟)$銆
+
+姣忎竴灞傚垝鍒嗗彧闇瑕佸鐞嗗墿浣欑殑寰呮帓搴忓厓绱狅紝鏃堕棿澶嶆潅搴︿笉瓒呰繃$O(n)$锛屾墍浠ユ椂闂村鏉傚害涓$O(n*閫掑綊灞傛暟)$銆
+
+鑰屽揩閫熸帓搴忎細灏嗘墍鏈夊厓绱犵粍缁囨垚涓轰簩鍙夋爲锛屼簩鍙夋爲鐨勫眰鏁板氨鏄掑綊璋冪敤鐨勫眰鏁般傛墍浠ュ浜$n$涓粨鐐圭殑浜屽弶鏍戯紝鏈灏忛珮搴︿负$\lfloor\log_2n\rfloor+1$锛屾渶澶ч珮搴︿负$n$銆
+
+浠庤屾渶濂芥椂闂村鏉傚害涓$O(n\log_2n)$锛屾渶鍧忔椂闂村鏉傚害涓$O(n^2)$锛屽钩鍧囨椂闂村鏉傚害涓$O(n\log_2n)$锛涙渶濂界┖闂村鏉傚害涓$O(\log_2n)$锛屾渶蹇┖闂村鏉傚害涓$O(n)$銆
+
+鎵浠ュ鏋滃垵濮嬪簭鍒楁槸鏈夊簭鐨勬垨閫嗗簭鐨勶紝鍒欏揩閫熸帓搴忕殑鎬ц兘鏈宸傝嫢姣忎竴娆¢変腑鐨勫熀鍑嗚兘鍧囧寑鍒掑垎锛屽垯鏁堢巼鏈楂樸
+
+鎵浠ュ浜庡揩閫熸帓搴忕殑鎬ц兘浼樺寲鏄夋嫨灏藉彲鑳借兘涓垎鐨勫熀鍑嗗厓绱狅紝鍏ラ夊ご涓熬涓変釜浣嶇疆鐨勫厓绱狅紝閫夋嫨涓棿鍊间綔涓哄熀鍑嗗厓绱狅紝鎴栭殢鏈洪夋嫨涓涓厓绱犱綔涓哄熀鍑嗗厓绱犮
+
+蹇熸帓搴忕畻娉曟槸涓嶇ǔ瀹氱殑銆
+
+## 閫夋嫨鎺掑簭
+
+閫夋嫨鎺掑簭灏辨槸姣忎竴瓒熷湪寰呮帓搴忓厓绱犱腑閫夊彇鍏抽敭瀛楁渶灏忔垨鏈澶х殑鍏冪礌鍔犲叆鏈夊簭瀛愬簭鍒椼
+
+### 绠鍗曢夋嫨鎺掑簭
+
+#### 绠鍗曢夋嫨鎺掑簭鐨勮繃绋
+
+鍗虫瘡涓瓒熷湪寰呮帓搴忓厓绱犱腑閫夊彇鍏抽敭瀛楁渶灏忕殑鍏冪礌鍔犲叆鏈夊簭搴忓垪銆
+
+#### 绠鍗曢夋嫨鎺掑簭鐨勬ц兘
+
+绌洪棿澶嶆潅搴︿负$O(1)$銆
+
+鏃堕棿澶嶆潅搴︿负$O(n^2)$銆
+
+绠鍗曢夋嫨鎺掑簭鏄笉绋冲畾鐨勩
+
+绠鍗曢夋嫨鎺掑簭涔熷彲浠ラ傜敤浜庨摼琛ㄣ
+
+### 鍫嗘帓搴
+
+#### 鍫嗙殑瀹氫箟
+
+鑻$n$涓叧閿瓧搴忓垪$L$婊¤冻涓嬮潰鏌愪竴鏉℃ц川锛屽垯灏辨槸鍫嗭細
+
+1. 鑻ユ弧瓒$L(i)\geqslant L(2i)$涓$L(i)\geqslant L(2i+1)\,(1\leqslant i\leqslant\dfrac{n}{2})$鍒欐槸澶ф牴鍫嗘垨澶ч《鍫嗐
+2. 鑻ユ弧瓒$L(i)\leqslant L(2i)$涓$L(i)\leqslant L(2i+1)\,(1\leqslant i\leqslant\dfrac{n}{2})$鍒欐槸灏忔牴鍫嗘垨灏忛《鍫嗐
+
+#### 鍫嗙殑寤虹珛
+
+鍏跺疄鍫嗗氨鏄『搴忓瓨鍌ㄧ殑瀹屽叏浜屽弶鏍戙傚叾涓細
+
++ $i\leqslant\lfloor\dfrac{n}{2}\rfloor$鐨勭粨鐐归兘鏄潪缁堢缁撶偣銆
++ $i$鐨勫乏瀛╁瓙鏄$2i$銆
++ $i$鐨勫彸瀛╁瓙鏄$2i+1$銆
++ $i$鐨勭埗缁撶偣鏄$\lfloor\dfrac{n}{2}\rfloor$銆
+
+鎵浠ュ缓绔嬫牴鍫嗙殑杩囩▼鏄細
+
+1. 浠$t\lfloor\dfrac{n}{2}\rfloor$鐨勭粨鐐瑰紑濮嬪線鍓嶉亶鍘嗐
+2. 妫鏌ュ綋鍓嶇粨鐐$i$涓庡乏瀛╁瓙鍜屽彸瀛╁瓙鏄惁婊¤冻鏍瑰爢鏉′欢锛岃嫢涓嶆弧瓒冲垯浜ゆ崲銆
+ + 鑻ユ槸寤虹珛澶ф牴鍫嗭紝妫鏌ユ槸鍚︽弧瓒虫牴澶т簬绛変簬宸︺佸彸缁撶偣锛岃嫢涓嶆弧瓒筹紝鍒欏綋鍓嶇粨鐐逛笌鏇村ぇ鐨勪竴涓瀛愪簰鎹€
+ + 鑻ユ槸寤虹珛灏忔牴鍫嗭紝妫鏌ユ槸鍚︽弧瓒虫牴灏忎簬绛変簬宸︺佸彸缁撶偣锛岃嫢涓嶆弧瓒筹紝鍒欏綋鍓嶇粨鐐逛笌鏇村皬鐨勪竴涓瀛愪簰鎹€
+3. 鑻ュ厓绱犱簰鎹㈢牬鍧忎簡涓嬩竴绾х殑鍫嗭紝鍒欓噰鐢ㄥ悓鏍风殑鏂规硶缁х画鍚戜笅璋冩暣銆
+ + 鑻ユ槸寤虹珛澶ф牴鍫嗭紝鍒欏皬鐨勫厓绱犱笉鏂笅鍧犮
+ + 鑻ユ槸寤虹珛灏忔牴鍫嗭紝鍒欏ぇ鐨勫厓绱犱笉鏂笅鍧犮
+
+#### 鍫嗘帓搴忕殑杩囩▼
+
+1. 姣忎竴瓒熷皢鍫嗛《鍏冪礌鍔犲叆瀛愬簭鍒楋紙鍫嗛《鍏冪礌涓庡緟鎺掑簭搴忓垪涓殑鏈鍚庝竴涓厓绱犱氦鎹級銆傛鏃跺悗闈㈢殑杩欎釜鍏冪礌灏辨帓搴忓ソ浜嗐
+2. 姝ゆ椂寰呮帓搴忓簭鍒楀凡缁忎笉鏄爢浜嗭紝闇瑕佸皢鍏跺啀娆¤皟鏁翠负鍫嗭紙灏忓厓绱犳垨澶у厓绱犱笉鏂笅鍧狅級銆
+3. 閲嶅姝ラ涓浜屻
+4. 鐩村埌n-1瓒熷鐞嗗悗寰楀埌鏈夊簭搴忓垪銆傚熀浜庡ぇ鏍瑰爢鐨勫爢鎺掑簭浼氬緱鍒伴掑搴忓垪锛岃屽熀浜庡皬鏍瑰爢鐨勫爢鎺掑簭浼氬緱鍒伴掑噺搴忓垪銆
+
+#### 鍫嗘帓搴忕殑鎬ц兘
+
+鍫嗘帓搴忕殑瀛樺偍灏辨槸瀹冩湰韬紝涓嶉渶瑕侀澶栫殑瀛樺偍绌洪棿锛岃涔堝彧闇瑕佷竴涓敤浜庝氦鎹㈡垨涓存椂瀛樻斁鍏冪礌鐨勮緟鍔╃┖闂淬傛墍浠ョ┖闂村鏉傚害涓$O(1)$銆
+
+鑻ユ爲楂樹负$h$锛屾煇缁撶偣鍦ㄧ$i$灞傦紝鍒欏皢杩欎釜缁撶偣鍚戜笅璋冩暣鏈澶氬彧闇瑕佷笅鍧$h-i$灞傦紝鍏抽敭瀛楀姣旀鏁颁笉瓒呰繃$2(h-i)$娆°
+
+绗$i$灞傛渶澶$2^{i-1}$涓粨鐐癸紝鑰屽彧鏈夌$1\cdots(h-1)$灞傜殑缁撶偣鎵嶅彲鑳介渶瑕佷笅鍧犺皟鏁淬傛墍浠ヨ皟鏁存椂鍏抽敭瀛楀姣旀鏁颁笉瓒呰繃$\sum_{i=h-1}^12^{i-1}2(h-i)=\sum_{j=1}^{h-1}2^{h-j}j\leqslant2n\sum_{j=1}^{h-1}\dfrac{j}{2^j}\leqslant4n$銆
+
+鎵浠ュ缓鍫嗙殑杩囩▼涓紝鍏抽敭瀛楀姣旀鏁颁笉瓒呰繃$4n$锛屽缓鍫嗙殑鏃堕棿澶嶆潅搴︿负$O(n)$銆
+
+鍫嗘帓搴忎腑澶勭悊鏃舵牴缁撶偣鏈澶氫笅鍧$h-1$灞傦紝鑰屾瘡涓嬪潬涓灞傦紝鏈澶氬姣斿叧閿瓧涓ゆ锛屾墍浠ユ瘡涓瓒熸帓搴忕殑鏃堕棿澶嶆潅搴︿笉瓒呰繃$O(h)=O(\log_2n)$锛屼竴鍏$n-1$瓒燂紝鎵浠ユ椂闂村鏉傚害涓$O(n\log_2n)$銆傛墍浠ユ荤殑鏃堕棿澶嶆潅搴︿篃鏄$O(n\log_2n)$銆
+
+鍫嗘帓搴忔槸涓嶇ǔ瀹氱殑銆
+
+#### 鍫嗙殑鎻掑叆
+
+鏂板厓绱犳斁鍒拌〃灏撅紝骞朵笌鍏$\lfloor\dfrac{i}{2}\rfloor$鐨勭埗缁撶偣杩涜瀵规瘮锛岃嫢鏂板厓绱犳瘮鐖跺厓绱犳洿澶э紙澶ф牴鍫嗭級鎴栨洿灏忥紙灏忔牴鍫嗭級锛屽垯浜岃呬簰鎹紝骞朵繚鎸佷笂鍗囷紝鐩村埌鏃犳硶涓婂崌涓烘銆
+
+#### 鍫嗙殑鍒犻櫎
+
+琚垹闄ょ殑鍏冪礌鐢ㄥ爢搴曞厓绱犱唬鏇匡紝鐒跺悗璁╄繖涓厓绱犱笉鏂笅鍧狅紝鐩村埌鏃犳硶涓嬪潬涓烘銆
+
+## 褰掑苟鎺掑簭
+
+褰掑苟鏄寚鎶婁袱涓紙浜岃矾褰掑苟锛夋垨澶氫釜锛堝璺綊骞讹級宸茬粡鏈夊簭鐨勫簭鍒楀悎骞朵负涓涓
+
+璇ョ畻娉曟槸閲囩敤鍒嗘不娉曠殑涓涓潪甯稿吀鍨嬬殑搴旂敤銆傚皢宸叉湁搴忕殑瀛愬簭鍒楀悎骞讹紝寰楀埌瀹屽叏鏈夊簭鐨勫簭鍒楋紱鍗冲厛浣挎瘡涓瓙搴忓垪鏈夊簭锛屽啀浣垮瓙搴忓垪娈甸棿鏈夊簭銆
+
+## 浜岃矾褰掑苟鎺掑簭
+
+浜岃矾褰掑苟鎺掑簭姣旇緝甯哥敤锛屼笖鍩烘湰涓婄敤浜庡唴閮ㄦ帓搴忥紝澶氳矾鎺掑簭澶氱敤浜庡閮ㄦ帓搴忋
+
+### 浜岃矾褰掑苟鎺掑簭鐨勮繃绋
+
+1. 鎶婇暱搴︿负$n$鐨勮緭鍏ュ簭鍒楀垎鎴愪袱涓暱搴︿负$\dfrac{n}{2}$鐨勫瓙搴忓垪銆
+2. 瀵硅繖涓や釜瀛愬簭鍒楀垎鍒噰鐢ㄥ綊骞舵帓搴忋
+3. 灏嗕袱涓帓搴忓ソ鐨勫瓙搴忓垪鍚堝苟鎴愪竴涓渶缁堢殑鎺掑簭搴忓垪銆
+
+### 浜岃矾褰掑苟鎺掑簭鐨勬ц兘
+
+浜岃矾褰掑苟鎺掑簭鏄竴妫靛掔珛鐨勪簩鍙夋爲銆
+
+绌洪棿澶嶆潅搴︿富瑕佹潵鑷緟鍔╂暟缁勶紝鎵浠ヤ负$O(n)$锛岃岄掑綊璋冪敤鐨勮皟鐢ㄦ爤鐨勭┖闂村鏉傚害涓$O(\log_2n)$锛屾荤殑绌洪棿澶嶆潅搴﹀氨鏄负$O(n)$銆
+
+$n$涓厓绱犱簩璺綊骞舵帓搴忥紝褰掑苟涓鍏辫$\log_2n$瓒燂紝姣忔褰掑苟鏃堕棿澶嶆潅搴︿负$O(n)$锛屽垯绠楁硶鏃堕棿澶嶆潅搴︿负$O(n\log_2n)$
+
+褰掑苟鎺掑簭鏄ǔ瀹氱殑銆
+
+## 鍒嗛厤鎺掑簭
+
+鍒嗛厤鎺掑簭杩囩▼鏃犻』姣旇緝鍏抽敭瀛楋紝鑰屾槸閫氳繃鐢ㄩ澶栫殑绌洪棿鏉モ滃垎閰嶁濆拰鈥滄敹闆嗏濇潵瀹炵幇鎺掑簭锛屽畠浠殑鏃堕棿澶嶆潅搴﹀彲杈惧埌绾挎ч樁$O(n)$銆傜畝瑷涔嬪氨鏄細鐢ㄧ┖闂存崲鏃堕棿锛屾墍浠ユц兘涓庡熀浜庢瘮杈冪殑鎺掑簭鎵嶆湁鏁伴噺绾х殑鎻愰珮銆
+
+### 鍩烘暟鎺掑簭
+
+璁℃暟鎺掑簭涓嶆槸鍩轰簬姣旇緝鐨勬帓搴忕畻娉曪紝鍏舵牳蹇冨湪浜庡皢杈撳叆鐨勬暟鎹艰浆鍖栦负閿瓨鍌ㄥ湪棰濆寮杈熺殑鏁扮粍绌洪棿涓備綔涓轰竴绉嶇嚎鎬ф椂闂村鏉傚害鐨勬帓搴忥紝璁℃暟鎺掑簭瑕佹眰杈撳叆鐨勬暟鎹繀椤绘槸鏈夌‘瀹氳寖鍥寸殑鏁存暟銆
+
+#### 鍩烘暟鐨勫畾涔
+
+鍋囪闀垮害涓$n$鐨勭嚎鎬ц〃涓瘡涓粨鐐$a_j$鐨勫叧閿瓧鐢$d$鍏冪粍$(k_j^{d-1},k_j^{d-2},\cdots,k_j^1,k_j^0)$缁勬垚锛屽叾涓$0\geqslant k_j^i\geqslant r-1\,(0\geqslant i\geqslant d-1)$锛屽叾涓$r$灏辨槸鍩烘暟銆
+
+#### 鍩烘暟鎺掑簭鐨勮繃绋
+
+鑻ユ槸瑕佸緱鍒伴掑噺搴忓垪锛
+
+1. 鍒濆鍖栵細璁剧疆$r$涓┖杈呭姪闃熷垪$Q_{r-1},Q_{r-2},\cdots,Q_0$銆
+2. 鎸夌収姣忎釜鍏抽敭瀛椾綅**鏉冮噸閫掑**鐨勬搴忥紙涓佸崄銆佺櫨锛夛紝瀵$d$涓叧閿瓧浣嶅垎鍒仛鍒嗛厤鍜屾敹闆嗐
+3. 鍒嗛厤灏辨槸椤哄簭鎵弿鍚勪釜鍏冪礌锛岃嫢褰撳墠澶勭悊鐨勫叧閿瓧浣嶄负$x$锛屽氨灏嗗厓绱犳彃鍏$Q_x$闃熷熬銆
+4. 鏀堕泦灏辨槸鎶$Q_{r-1},Q_{r-2},\cdots,Q_0$鍚勪釜闃熷垪鐨勭粨鐐逛緷娆″嚭闃熷苟閾炬帴鍦ㄤ竴璧枫
+
+#### 鍩烘暟鎺掑簭鐨勬ц兘
+
+鍩烘暟鎺掑簭鍩烘湰涓婁娇鐢ㄩ摼寮忓瓨鍌ㄨ屼笉鏄竴鑸殑椤哄簭瀛樺偍銆
+
+闇瑕$r$涓緟鍔╅槦鍒楋紝鎵浠ョ┖闂村鏉傚害涓$O(r)$銆
+
+涓瓒熷垎閰$O(n)$锛屼竴瓒熸敹闆$O(r)$锛屼竴鍏辨湁$d$瓒熷垎閰嶆敹闆嗭紝鎵浠ユ荤殑鏃堕棿澶嶆潅搴︿负$O(d(n+r))$銆
+
+鍩烘暟鎺掑簭鏄ǔ瀹氱殑銆
+
+#### 鍩烘暟鎺掑簭鐨勫簲鐢
+
+瀵逛簬涓鑸殑鏁存暟鎺掑簭鏄彲浠ユ寜浣嶆帓搴忕殑锛屼篃鍙互澶勭悊涓浜涘疄闄呴棶棰橈紝濡傛牴鎹汉鐨勫勾榫勬帓搴忥紝闇瑕佷粠骞存湀鏃ヤ笁涓淮搴﹀垎鍒缃勾浠界殑闃熷垪銆佹湀浠界殑闃熷垪锛1鍒12锛夈佹棩鐨勯槦鍒楋紙1鍒31锛夈
+
+鎵浠ュ熀鏁版帓搴忔搮闀胯В鍐崇殑闂锛
+
+1. 鏁版嵁鍏冪礌鐨勫叧閿瓧鍙互鏂逛究鍦版媶鍒嗕负$d$缁勶紝涓$d$杈冨皬銆
+2. 姣忕粍鍏抽敭瀛楃殑鍙栧艰寖鍥翠笉澶э紝鍗$r$杈冨皬銆
+3. 鏁版嵁鍏冪礌涓暟$n$杈冨ぇ銆
+
+### 璁℃暟鎺掑簭
+
+浣滀负涓绉嶇嚎鎬ф椂闂村鏉傚害鐨勬帓搴忥紝璁℃暟鎺掑簭瑕佹眰杈撳叆鐨勬暟鎹繀椤绘槸鏈夌‘瀹氳寖鍥寸殑鏁存暟銆
+
+#### 璁℃暟鎺掑簭鐨勮繃绋
+
+1. 鎵惧嚭寰呮帓搴忕殑鏁扮粍涓渶澶у拰鏈灏忕殑鍏冪礌銆
+2. 缁熻鏁扮粍涓瘡涓间负i鐨勫厓绱犲嚭鐜扮殑娆℃暟锛屽瓨鍏ユ暟缁凜鐨勭i椤广
+3. 瀵规墍鏈夌殑璁℃暟绱姞锛堜粠C涓殑绗竴涓厓绱犲紑濮嬶紝姣忎竴椤瑰拰鍓嶄竴椤圭浉鍔狅級銆
+4. 鍙嶅悜濉厖鐩爣鏁扮粍锛氬皢姣忎釜鍏冪礌i鏀惧湪鏂版暟缁勭殑绗珻(i)椤癸紝姣忔斁涓涓厓绱犲氨灏咰(i)鍑忓幓1銆
+
+褰撹緭鍏ョ殑鍏冪礌鏄$n$涓睘浜$[0,k]$鐨勬暣鏁版椂锛屾椂闂村鏉傚害鏄$O(n+k)$锛岀┖闂村鏉傚害涔熸槸$O(n+k)$锛屽叾鎺掑簭閫熷害蹇簬浠讳綍姣旇緝鎺掑簭绠楁硶銆
+
+褰$k$涓嶆槸寰堝ぇ骞朵笖搴忓垪姣旇緝闆嗕腑鏃讹紝璁℃暟鎺掑簭鏄竴涓緢鏈夋晥鐨勬帓搴忕畻娉曘
+
+璁℃暟鎺掑簭鏄ǔ瀹氱殑銆
+
+### 妗舵帓搴
+
+妗舵帓搴忔槸璁℃暟鎺掑簭鐨勫崌绾х増銆傚畠鍒╃敤浜嗗嚱鏁扮殑鏄犲皠鍏崇郴锛岄珮鏁堜笌鍚︾殑鍏抽敭灏卞湪浜庤繖涓槧灏勫嚱鏁扮殑纭畾銆傛《鎺掑簭鐨勫伐浣滅殑鍘熺悊锛氬亣璁捐緭鍏ユ暟鎹湇浠庡潎鍖鍒嗗竷锛屽皢鏁版嵁鍒嗗埌鏈夐檺鏁伴噺鐨勬《閲岋紝姣忎釜妗跺啀鍒嗗埆鎺掑簭锛堟湁鍙兘鍐嶄娇鐢ㄥ埆鐨勬帓搴忕畻娉曟垨鏄互閫掑綊鏂瑰紡缁х画浣跨敤妗舵帓搴忚繘琛屾帓锛夈
+
+#### 妗舵帓搴忕殑杩囩▼
+
+1. 璁剧疆涓涓畾閲忕殑鏁扮粍褰撲綔绌烘《銆
+2. 閬嶅巻杈撳叆鏁版嵁锛屽苟涓旀妸鏁版嵁涓涓竴涓斁鍒板搴旂殑妗堕噷鍘汇
+3. 瀵规瘡涓笉鏄┖鐨勬《杩涜鎺掑簭銆
+4. 浠庝笉鏄┖鐨勬《閲屾妸鎺掑ソ搴忕殑鏁版嵁鎷兼帴璧锋潵銆
+
+#### 妗舵帓搴忕殑鎬ц兘
+
+妗舵帓搴忔渶濂芥儏鍐典笅浣跨敤绾挎ф椂闂$O(n)$锛屾《鎺掑簭鐨勬椂闂村鏉傚害锛屽彇鍐充笌瀵瑰悇涓《涔嬮棿鏁版嵁杩涜鎺掑簭鐨勬椂闂村鏉傚害锛屽洜涓哄叾瀹冮儴鍒嗙殑鏃堕棿澶嶆潅搴﹂兘涓$O(n)$銆傛《鎺掑簭鐨勫钩鍧囨椂闂村鏉傚害涓虹嚎鎬х殑$O(n+C)$锛屽叾涓$C=n*(\log n-\log m)$锛屽叾涓$m$浠h〃妗跺垝鍒嗙殑鏁伴噺銆
+
+寰堟樉鐒讹紝妗跺垝鍒嗙殑瓒婂皬锛屽悇涓《涔嬮棿鐨勬暟鎹秺灏戯紝鎺掑簭鎵鐢ㄧ殑鏃堕棿涔熶細瓒婂皯銆備絾鐩稿簲鐨勭┖闂存秷鑰楀氨浼氬澶с
+
+妗舵帓搴忔槸绋冲畾鐨勩
+
+## 鍐呴儴鎺掑簭
+
+绠楁硶绉嶇被|鏈濂芥椂闂村鏉傚害|骞冲潎鏃堕棿澶嶆潅搴鏈濂芥椂闂村鏉傚害|绌洪棿澶嶆潅搴鏄惁绋冲畾
+:-----:|:------------:|:----------:|:------------:|:-------:|:------:
+鐩存帴鎻掑叆鎺掑簭|$O(n)$|$O(n^2)$|$O(n^2)$|$O(1)$|鏄
+鍐掓场鎺掑簭|$O(n)$|$O(n^2)$|$O(n^2)$|$O(1)$|鏄
+绠鍗曢夋嫨鎺掑簭|$O(n^2)$|$O(n^2)$|$O(n^2)$|$O(1)$|鍚
+甯屽皵鎺掑簭|$?$|$?$|$?$|$O(1)$|鍚
+蹇熸帓搴弢$O(n\log_2n)$|$O(n\log_2n)$|$O(n^2)$|$O(\log_2n)$|鍚
+鍫嗘帓搴弢$O(n\log_2n)$|$O(n\log_2n)$|$O(n\log_2n)$|$O(1)$|鍚
+浜岃矾褰掑苟鎺掑簭|$O(n\log_2n)$|$O(n\log_2n)$|$O(n\log_2n)$|$O(n)$|鏄
+鍩烘暟鎺掑簭|$O(d(n+r))$|$O(d(n+r))$|$O(d(n+r))$|$O(r)$|鏄
+
+## 澶栭儴鎺掑簭
+
+### 澶栭儴鎺掑簭鐨勫師鐞
+
+纾佺洏鐨勮鍐欐槸浠ュ潡涓哄崟浣嶏紝鏁版嵁璇诲叆鍐呭瓨鍚庢墠鑳借淇敼锛屼慨鏀瑰畬鎴愬悗杩橀渶瑕佸啓鍥炵鐩樸
+
+澶栭儴鎺掑簭灏辨槸閽堝鏁版嵁鍏冪礌澶锛屾棤娉曚竴娆℃у叏閮ㄨ鍏ュ唴瀛樿繘琛屾帓搴忚岃繘琛屽鐞嗙殑鍦ㄥ閮ㄧ鐩樿繘琛岀殑鎺掑簭澶勭悊鏂瑰紡銆
+
+浣跨敤褰掑苟鎺掑簭鐨勬柟寮忥紝鏈灏戝彧鐢ㄥ湪鍐呭瓨鍒嗛厤涓夊潡澶у皬鐨勭紦鍐插尯鍗冲彲鍫嗕换鎰忎竴涓ぇ鏂囦欢杩涜鎺掑簭銆傜劧鍚庡缂撳啿鍖洪噷鐨勬暟鎹繘琛屽唴閮ㄦ帓搴忋
diff --git a/Data-Structrue/stack.md b/Data-Structrue/stack.md
index a8749a4..31bb31c 100644
--- a/Data-Structrue/stack.md
+++ b/Data-Structrue/stack.md
@@ -48,7 +48,7 @@
1. 纭畾涓紑琛ㄨ揪寮忎腑鍚勪釜杩愮畻绗︾殑杩愮畻椤哄簭杩涜鎺掑簭銆
2. 閫夋嫨涓嬩竴涓繍绠楃锛屾寜鐓**宸︽搷浣滄暟 鍙虫搷浣滄暟 杩愮畻绗**鐨勬柟寮忕粍鍚堜竴涓釜鏂扮殑鎿嶄綔鏁般
-3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅2姝ラ銆
+3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅姝ラ浜屻
濡侫+B*(C-D)-E/F灏辨槸ABCD-*+EF/-鍜孉BCD-\*EF/-+銆備腑缂杞悗缂鐨勭粨鏋滃彲浠ユ湁涓嶅悓鐨勭粨鏋溿
@@ -69,7 +69,7 @@
1. 浠庡乏寰鍙虫壂鎻忎笅涓涓厓绱狅紝鐩村埌澶勭悊鎵鏈夊厓绱犮
2. 鑻ユ壂鎻忓埌鎿嶄綔鏁板垯鍘嬪叆鏍堬紝骞跺洖鍒1锛岃嫢鎵弿鍒拌繍绠楃鍒欐墽琛3.
-3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠1銆
+3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠や竴銆
4. 鍏堝嚭鏍堢殑鏄彸鎿嶄綔鏁帮紝鍚庡嚭鏍堢殑鏄乏鎿嶄綔鏁般
浣跨敤鏍堣繘琛屼腑缂琛ㄨ揪寮忔眰鍊肩殑绋嬪簭瀹炵幇锛
@@ -86,7 +86,7 @@
1. 纭畾涓紑琛ㄨ揪寮忎腑鍚勪釜杩愮畻绗︾殑杩愮畻椤哄簭杩涜鎺掑簭銆
2. 閫夋嫨涓嬩竴涓繍绠楃锛屾寜鐓**杩愮畻绗 宸︽搷浣滄暟 鍙虫搷浣滄暟**鐨勬柟寮忕粍鍚堜竴涓釜鏂扮殑鎿嶄綔鏁般
-3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅2姝ラ銆
+3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅姝ラ浜屻
閬靛惊鍙充紭鍏堝師鍒欙紝鍙鑳借绠楀彸杈瑰氨浼樺厛璁$畻鍙宠竟銆
@@ -94,7 +94,7 @@
1. 浠庡彸寰宸︽壂鎻忎笅涓涓厓绱狅紝鐩村埌澶勭悊鎵鏈夊厓绱犮
2. 鑻ユ壂鎻忓埌鎿嶄綔鏁板垯鍘嬪叆鏍堬紝骞跺洖鍒1锛岃嫢鎵弿鍒拌繍绠楃鍒欐墽琛3.
-3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠1銆
+3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠や竴銆
4. 鍏堝嚭鏍堢殑鏄乏鎿嶄綔鏁帮紝鍚庡嚭鏍堢殑鏄彸鎿嶄綔鏁般
### 閫掑綊
diff --git a/Data-Structrue/tree.md b/Data-Structrue/tree.md
index f5a4bfe..170fec7 100644
--- a/Data-Structrue/tree.md
+++ b/Data-Structrue/tree.md
@@ -91,7 +91,7 @@
1. 鍒濆鍖栦竴涓緟鍔╅槦鍒椼
2. 鏍圭粨鐐瑰叆闃熴
3. 鑻ラ槦鍒楅潪绌猴紝鍒欓槦澶寸粨鐐瑰嚭闃燂紝璁块棶璇ョ粨鐐癸紝濡傛灉鏈夊苟灏嗗叾宸﹀彸瀛╁瓙鍏ラ槦銆
-4. 閲嶅姝ラ3鐩磋嚦闃熷垪绌恒
+4. 閲嶅姝ラ涓夌洿鑷抽槦鍒楃┖銆
### 閬嶅巻搴忓垪鏋勯犱簩鍙夋爲
@@ -416,7 +416,7 @@ AL(H) CL(H-1) CR(H) BR(H)
1. 灏嗚繖n涓粨鐐瑰垎鍒綔涓簄妫典粎鍚竴涓粨鐐圭殑浜屽弶鏍戯紝鏋勬垚妫灄F銆
2. 鏋勯犱竴涓柊缁撶偣锛屼粠F涓夊彇涓ゆ5鏍圭粨鐐规潈鍊兼渶灏忕殑鏍戜綔涓烘柊缁撶偣鐨勫乏銆佸彸瀛愭爲锛屽苟涓斿皢鏂扮粨鐐圭殑鏉冨肩疆涓哄乏銆佸彸瀛愭爲涓婃牴缁撶偣鐨勬潈鍊间箣鍜屻
3. 浠嶧涓垹闄ゅ垰鎵嶉夊嚭鐨勪袱妫垫爲锛屽悓鏃跺皢鏂板緱鍒扮殑鏍戝姞鍏涓
-4. 閲嶅姝ラ2鍜3锛岀洿鑷矲涓彧鍓╀笅涓妫垫爲涓烘銆
+4. 閲嶅姝ラ浜屽拰涓夛紝鐩磋嚦F涓彧鍓╀笅涓妫垫爲涓烘銆
+ 姣忎釜鍒濆缁撶偣鏈缁堥兘浼氬彉鎴愬彾瀛愮粨鐐癸紝涓旀潈鍊艰秺灏忓埌鏍圭粨鐐圭殑璺緞闀垮害瓒婇暱銆
+ 鍝堝か鏇兼爲鐨勭粨鐐规绘暟涓2n-1銆