B樹和B+樹總結 B樹 簡介 這里的B樹,也就是英文中的B-Tree,一個 m 階的B樹滿足以下條件: 每個結點至多擁有m棵子樹; 根結點至少擁有兩顆子樹(存在子樹的情況下),根結點至少有一個關 ...
B樹和B+樹總結 B樹 簡介 這里的B樹,也就是英文中的B-Tree,一個 m 階的B樹滿足以下條件: 每個結點至多擁有m棵子樹; 根結點至少擁有兩顆子樹(存在子樹的情況下),根結點至少有一個關 ...
前言 根據分類,圖的搜索分類可以分為 BFS和DFS 記憶化搜索(基於深搜) 雙向廣搜 二分狀態搜索 啟發式搜索 與或樹搜索 博弈樹搜索(α-β剪枝)(極大極小過程搜 ...
樹狀數組的原理和實現 概念 樹狀數組或者二叉索引樹也稱作Binary Indexed Tree,又叫做Fenwick樹;它的查詢和修改的時間復雜度都是log(n),空間復雜度則為 ...
樹鏈剖分原理和實現.md html {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scro ...
前言 有時候,當你並不了解很多高級算法的時候,搜索不失為一種解決問題的好方法,而且很多高級算法有或多或少的會用到搜索或者搜索的思想。可見,搜索是一個基礎並且必須要掌握的算法。 在這篇文章中,會對B ...
簡介 當一棵二叉樹的每個結點都大於它的兩個子結點時,被稱為堆有序; 如果我們用指針來表示堆有序的二叉樹,那么每個元素都需要三個指針來找到它的上下結點;但是如果我們使用完全二叉樹,只用數組而不需要指 ...
跳躍表原理和實現 前提 有時候會被問到鏈表如果做到二分搜索,可能會有部分的人會去把鏈表中的值保存到數組來進行二分,但是如果知道跳躍表的話,那么這個數據結構就可以解決這個困惑,它允 ...
本篇將附上擴展歐幾里得算法的思想與推導; 對於一個方程\(a*x+b*y=gcd(a,b)\)來說,我們可以做如下的推導: 設有\(a*x_1+b*y_1=gcd(a,b)\); 同時我們有 ...
來源 在沒有BM算法時,其原始算法是從后往前進行匹配,需要兩層循環,判斷以某個字符為結尾的子串是否和模式串相等,這種算法也稱作暴搜; 貼上代碼: 算法的思想還是比較容易理解的,i和j分別指的 ...
貪心算法的原理和實現 1 基本思想 從問題的某一個初始解出發,通過一系列的貪心選擇-當前狀態下的局部最優選擇,逐步逼近給定的目標; 在每個階段,都作出一個按照()某個評價函數最優的決策,這個評價 ...