原创 完全二叉堆及典型應用

一、關於最大值數據結構的比較 獲取最大值的平均時間複雜度 刪除最大值的平均時間複雜度 尾部添加元素的平均時間複雜度 動態數組 O(N) O(N) O(1) 雙向鏈表 O(N) O(N) O(1) 平衡的二叉搜索樹

原创 重寫PriorityQueue

       PriorityQueue其實就是優先隊列。 一、優先隊列簡介        普通的隊列就是FIFO(先進先出),而優先級隊列是按照優先級的高低依次出隊的,而且每次出隊的時候會將優先級最高的元素作爲隊頭優先出隊。

原创 字典樹---Trie

一、字典樹簡介         Trie也叫做字典樹、前綴樹、單詞查找樹。         Trie搜索字符串的效率主要跟字符串的長度有關。         前綴搜索的時候,用Trie就是典型的空間換時間,差不多一個字符需要一個結

原创 哈夫曼樹(HuffmanTree)

一、哈夫曼樹簡介 1、構建哈夫曼樹        計算每個字符出現的概率,將這個概率做爲權值之比。        利用這些帶權值的字符構建出哈夫曼樹。        具體構建步驟:               ① 首先以每個帶權

原创 重寫HashMap和LinkedHashMap

一、TreeMap和HashMap比較 TreeMap HashMap 增加的平均時間複雜度 O(log N) O(1) 刪除的平均時間複雜度 O(log N) O(1) 查詢的平均時間複雜度 O(log N)

原创 重寫TreeSet和TreeMap

       又寫了一遍紅黑樹,寫了兩遍其實感覺也不是很複雜,旋轉的代碼寫完了並且寫正確了之後,手寫紅黑樹還不是信手拈來。 一、設計思路 1、設計結構圖 2、接口代碼 public interface Set<E> {

原创 深度解析紅黑樹

       工慾善其事必先利其器,要想搞懂紅黑樹,還要先學習B樹。紅黑樹和四階B樹是完全對應的。 一、B樹 1、簡述及特點        B樹其實就是多路的搜索樹,常用於文件系統,數據庫實現(一般是好幾百階),Linux進程調

原创 二叉搜索樹(BST)

一、二叉搜索樹簡介        二叉搜索樹也叫二叉排序樹、二叉查找樹。Binary Search Tree滿足下面三個條件:               1、任意一個結點的值都大於其左子樹所有結點的值 ;            

原创 重寫ArrayList與LinkedList

一、設計思路 1、設計結構圖 2、接口代碼 public interface List<E> { public static final int ELEMENT_NOT_FOUND = -1; //接口裏面默認的

原创 萬向節死鎖的理解與CS攝像機規避死鎖的簡單實現

實現CS攝像機儘量規避萬向節死鎖 本文使用glfw庫! 效果先擺圖 一、Unity中的歐拉角 歐拉角有如下兩種解釋: 1、維基百科上的歐拉角。當認爲順序是YXZ(Yaw->Pitch->Roll)時,是傳統的歐拉變換,每次變換都

原创 java實現簡單的網絡爬蟲+郵件推送

網絡爬蟲的流程梳理 URL放在隊列裏面,如果被訪問過就設置個標記,直到遍歷完所有的URL。 搭建maven環境 I eclipse搭建maven環境(更快捷的管理jar包) 1、網上下載maven 下載地址:http://m

原创 SpringMVC---異常處理源碼學習

一、源碼分析        processDispatchResult(…, (Exception)dispatchException):之前目標方法執行出現的異常也會作爲參數傳入這個方法。 private void proce

原创 從JSP開始談模板引擎

JSP即Java Server Page,本質是Servlet。要講JSP還是要先說Servlet,要說Servlet則離不開Tomcat,要談Tomcat還是要從HTTP協議說起。 一、HTTP協議 1、簡述與特點       

原创 SpringBoot學習---HelloWorld

一、簡介微服務        傳統部署方式都是All in one,所有應用服務都放在一臺服務器上面,需要擴展的時候複製多份war包到多個服務器上即可。這種方式有致命缺點,當你需要修改一小部分功能的時候,需要停掉整個服務,修改完後

原创 MyBatis---環境搭建及簡單的SQL映射

數據庫表結構: 一、環境搭建        1、導入jar包。        2、編寫兩個配置文件。一個是全局的mybatis配置文件,用來指定連接哪個數據庫的。另一個是相當於接口的實現類,第二個配置文件需要在第一個中註冊。