原创 數據結構 JAVA描述(十五) 動態查找表 二叉排序樹 二叉平衡樹

二叉排序樹 若左子樹不空,則左子樹上所有結點的值均<根結點的值 若右子樹不空,則右子樹上所有結點 的值均>根結點的值 它的左、右子樹也都是二叉排序樹。 二叉排序樹的查找過程 若樹爲空,則結束 若樹非空,則進行如下操作 若給

原创 數據結構 JAVA描述(十六) 動態查找 B-樹 B+樹 紅黑樹

B-樹 前面介紹的查找算法都在內存中進行的,它們適合用於較小的文件,而對於較大的、存放在外存的文件就不合適,對於此類較大規模的文件,即使是採用了平衡二叉樹,在查找效率上仍然較低。例如若將存放在外存的10億條記錄組織爲平衡二叉樹,則

原创 計算對象所佔的內存空間

package observer; public class Sizeof { public static void main(String[] args) throws Exception { // W

原创 LXD教程入門實踐 配置獨立ip 掛載gpu顯卡驅動 製作鏡像

機器環境 以Ubuntu 16.04.6 LTS系統爲例 安裝lxd3.0 方式一、apt安裝方式lxd sudo apt install lxd ubuntu16系統使用apt方式安裝的lxd是2.0 ubuntu1

原创 Ubuntu16.04開啓SSH服務遠程登錄 root登錄 密鑰登錄

初始環境 一臺新安裝好linux系統(以ubuntu16.04系統爲例)的機器或者虛擬機 此時本機ip無法被其他機器ping通,無法被ssh連接 安裝ssh服務 本機ssh連接其他機器,需安裝openssh-client(

原创 深入淺出設計模式(十):15.迭代器模式(Iterator) 16.模版方法模式(TemplateMethod)

15.迭代器模式(Iterator) 在軟件開發中,經常需要將某一類對象放在一個集合裏,或者放在容器裏,這個時候通常需要對集合或容器裏的對象進行訪問,很明顯,對集合或容器裏對象的訪問必須涉及遍歷,這就是迭代器模式。 哪裏會用到迭代

原创 深入淺出設計模式(八):10.合成模式(Composite) 11.享元模式(Flyweight)

10.合成模式(Composite) 合成模式又叫樹形模式,就是把部分和整體的關係用樹形結構表示,使得客戶端對單個對象和組合對象的使用具有一致性。 哪裏會使用到合成模式 比如將一個文件從C盤複製到D盤,也可以將一個文件夾從C盤複製

原创 深入淺出設計模式(六):8.門面模式

8.門面模式(Facade) 到蛋糕店買蛋糕,不需要知道蛋糕怎麼製作,蛋糕房就是蛋糕的門面,屏蔽了製作蛋糕的細節,門面模式又稱爲外觀模式。實際開發中,屏蔽了子模塊內部的實現細節,只是將客戶端需要的接口提供給客戶。 哪裏會用到門面模

原创 深入淺出設計模式(七):9.代理模式

9.代理模式(Proxy) 我們買房子辦理貸款時可以自己到銀行辦理,但是手續很多,也可以找相應的代理公司,這樣我們什麼都不用管。代理模式就是給一個對象提供一個代理對象,由這個代理對象控制對原對象的引用 代理模式的實現原理 動態代

原创 數據結構 JAVA描述(十三) 排序總結

時間複雜度 O(n ㏒₂ n):快速排序,堆排序,歸併排序。其中快排最好 O(n²):直接插入排序,冒泡排序,直接選擇排序。其中直接插入排序最好,特別是關鍵字近似有序的情況 O(n):基數排序 當關鍵字有序,直接插入和冒泡排序

原创 深入淺出設計模式(五):7.適配器模式

前面講完了創建型模式,這裏開始,我將講下7種結構型模式:適配器模式、裝飾模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。其中對象的適配器模式是各種模式的起源,我們看下面的圖: 7.適配器模式(Adapter) 當一個系

原创 數據結構 JAVA描述(十四) 靜態查找表

順序查找 順序查找又稱爲線性查找,它是一種最簡單、最基本的查找方法。 /** * @description 不帶監視哨的順序查找算法 * @date 2016年1月6日 */ pu

原创 深入淺出設計模式(十二):18.職責鏈模式(Chain of Responsibility)19.狀態模式(State)20.解釋器模式(Interpreter)

18.職責鏈模式(Chain of Responsibility) 職責鏈模式在程序應用中十分廣泛,經常使用在公文審批、出差報支等地方,職責鏈模式的作用就是將對象各自處理的職責分開,雖然職責很多,但最終只有一個職責進行處理。 哪裏

原创 深入淺出設計模式(九):12.裝飾模式(Decorator) 13.橋模式(Bridge)14.策略模式(Strategy)

12.裝飾模式(Decorator) 在程序開發中,有時候開發人員會使用繼承來擴展對象的功能,用戶的需求是多變的,也就造成繼承會造成代碼的大範圍改動,其實擴展對象的功能,採用組合比繼承要好很多,當用戶需求變動時,只需要將對象間的組

原创 深入淺出設計模式(十一):16.中介者模式(Mediator) 17.訪問者模式(Vistor)

16.中介者模式(Mediator) 中介者模式又叫調停者模式,比如說租房中介,通過中介,租房者和房東之間就建立了很好的聯繫,中介者模式採用的就是這個道理,用一箇中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式的相互引用。