原创 貪心算法

一、基本概念: 所謂貪心算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的局部最優解。 貪心算法沒有固定的算法框架,算法設計的關鍵是貪心策略的選擇。必須注意的

原创 fork()函數及例題

一、fork入門知識 一個進程,包括代碼、數據和分配給進程的資源。 一個進程調用fork()函數後,系統先給新的進程分配資源,例如存儲數據和代碼的空間。然後把原來的進程的所有值都複製到新的新進程中,只有少數值與原來的進程的值不同

原创 Android Studio導入項目出現問題總結

1、Plugin with id ‘com.android.application’ not found. 解決辦法: 在builde文件裏添加: buildscript { repositories {

原创 紅黑樹

一紅黑樹簡介 1 java代碼定義 二紅黑樹的時間複雜度和相關證明 時間複雜度爲 Olgn 定理一棵含有n個節點的紅黑樹的高度至多爲2logn1 三旋轉 1 左旋 2 右旋 3 區分左旋和右旋 四添加

原创 二分查找

package cn.zhuang.Search; public class BinarySearch { /* * 用遞歸方式二分查找 */ public static int searc

原创 IP協議、ARP協議、RARP協議

IP路由選擇 主機通過路由器和目的主機連接。主機通過IP數據報連接目的主機時,按照如下步驟搜索(同一網絡中的搜索要經過ARP協議將目的主機的IP地址解析爲MAC地址): 搜索路由表,優先搜索匹配主機,如果能找到和IP地址完全一致

原创 程序鎖遇到的問題及解決辦法

1.程序鎖必須在服務中去維護,就是所謂的看門狗服務, 在子線程裏一直死循環,對開啓的應用進行判斷,是否在加鎖應用的數據庫裏,如果在,則彈出攔截界面,注意:子線程雖然是死循環,但是要睡眠一下,一是避免系統消耗,二是給其他的子線程挪

原创 AVL樹

一AVL樹的介紹 AVL樹是高度平衡的而二叉樹它的特點是AVL樹中任何節點的兩個子樹的高度最大差別爲1 二AVL樹的Java實現 1 節點定義 2 旋轉 21 LL旋轉 22 RR旋轉 23 LR旋轉 24 RL旋

原创 Android啓動過程

android啓動 當引導程序啓動Linux內核後,會加載各種驅動和數據結構,當有了驅動以後,開始啓動Android系統同時會加載用戶級別的第一個進程init(system\core\init.c)代碼如下: int main

原创 回溯法

1、概念 回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。 回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現

原创 隊列實現

數組型隊列 public class MyQueue { // 數組 private long[] arr; // 最大空間 private int maxSize; // 有效元素大小

原创 棧的實現

1棧的數組實現 1、棧的數組實現 package cn.zhuang.stack; /** * 棧的ADT實現,數組棧 * @author zhuang */ public class ArrayStack

原创 程序員面試金典(java版)

一字符串 1確定字符互異 2原串翻轉 3原串翻轉 4原串翻轉 5基本字符串壓縮 6像素翻轉好好看看 7清除行列 8翻轉子串好好看看思路 二鏈表 2鏈表中倒數第k個結點 3訪問單個節點的刪除 4鏈表分割 5鏈式AB 7迴文鏈

原创 LinkedList類的用法

1、所有已實現的接口: Serializable, Cloneable, Iterable, Collection, Deque, List, Queue 雙向鏈表,既可以到first,有可以last 2、鏈表 boolean

原创 二叉搜索樹

性質:左子節點<父節點<右子節點 定義: public class TreeNode { public int keyValue; //關鍵字值 public TreeNode leftNode;//左節