原创 遞歸-- 數據結構與算法之美--CH10

文章目錄1. 什麼是遞歸2. 爲什麼需要遞歸3. 怎麼使用遞歸3.2 不要深入思考遞歸3.2 一個遞歸實例4. 遞歸需要注意的問題5. 遞歸代碼使用非遞歸實現6. 解開篇答7. 課後思考 1. 什麼是遞歸   從程序語言上來看,“

原创 泛型的深入理解和案例解析(1)---應用篇

文章目錄0. 泛型的歷史1. 一句話定義泛型2. 泛型的三種應用2.1 泛型接口2.2 泛型類2.3 泛型方法3. 注意點 0. 泛型的歷史   凡事一件事情的發生,必然有其合理性。   泛型是JDK 1.5 加入的一種語言特性,

原创 泛型的深入理解和案例解析(4)---類型擦除

文章目錄0. 引言1. 代碼實際驗證1.1 兩個不同類型的集合1.2 泛型類的成員變量1.3 extends限制類型擦除2. 理解類型擦除的意義 0. 引言    通過前三節,我們基本上掌握了泛型的基本用法和一些特定的問題解決。但

原创 深入理解Java反射機制(1)---應用篇

文章目錄0. 引言1. 什麼是Java反射2. 認識class對象2. java反射的典型使用2.1 根據類名創建對象2.2 獲取成員變量並使用2.3 獲取成員方法並調用 0. 引言   在實際的Android開發中,很少接觸發射

原创 數據結構與算法之美---CH01+CH02---是什麼爲什麼怎麼做

文章目錄0 什麼是數據結構和算法1 爲什麼學習2 學習什麼3 怎麼學習 0 什麼是數據結構和算法 1、數據結構是指一組數據的存儲結構 2、算法就是操作數據的方法 3、數據結構和算法是相輔相成的,數據結構是爲算法服務的,而算法要作用

原创 二分查找(下)變體問題--數據結構和算法之美--CH16

文章目錄1. 概述2. 二分查找變體問題2.1 查找第一個值等於給定值的元素2.2 查找最後一個值等於給定值的元素2.3 查找第一個大於等於給定值的元素2.4 查找最後一個小於等於給定值的元素3. 適用性分析4. 問題解答 1.

原创 散列表--數據結構與算法之美--CH18、CH19、CH20

文章目錄1 散列表概述1.1 散列表的由來1.2 散列函數1.3 散列衝突及解決1.3.1 開放尋址法1.3.2 鏈表法2 工業級散列表2.1 散列函數的設計2.2 裝載因子及動態擴容2.3 選擇合適的散列衝突解決辦法3 散列表和

原创 跳錶--數據結構與算法之美--CH17

文章目錄1. 什麼是跳錶2. 跳錶的複雜度分析2.1 查找的時間複雜度2.2 插入、刪除的時間複雜度2.3 空間複雜度2.4 空間複雜度優化3. 跳錶的動態更新4. 跳錶小結5. 問題思考5.1 爲什麼Redias用跳錶來實現有序

原创 動態規劃的引入--數據結構與算法之美--CH40

文章目錄1. 什麼是動態規劃2. 再看0-1揹包問題2.1 遞歸回溯算法2.2 遞歸回溯+備忘錄2.3 動態規劃算法3. 升級版 0-1揹包問題3.1 遞歸回溯算法3.2 動態規劃求解4. 動態規劃空間複雜度再優化4.1 普通 0

原创 如何實現工業級的排序函數--數據結構和算法之美--CH14

文章目錄1. 概述2. 如何選擇排序算法3. 如何優化快速排序4. 通用排序算法實現技巧5. 分析java中排序算法的實現6. 典型問題 1. 概述   排序算法有很多種,每種排序算法都可以從時間複雜度,穩定性和是否是原地排序進行

原创 哈希算法--數據結構與算法之美--CH21、CH22

文章目錄1. 概述1.1 什麼是哈希算法1.2 如何設計優秀的哈希算法2. 安全加密3. 唯一標識4. 數據校驗5. 散列函數6. 負載均衡7. 數據分片8. 分佈式存儲9. 思考解答 1. 概述 1.1 什麼是哈希算法   一句

原创 二分查找(上)--數據結構和算法之美--CH15

文章目錄1. 什麼是二分查找2. 二分查找的時間複雜度3. 二分查找實現3.1 非遞歸實現3.2 遞歸實現4.二分查找應用場景5. 問題解答 1. 什麼是二分查找   二分查找針對的是一個有序的數據集合,查找思想有點類似分治思想。

原创 平衡二叉樹、紅黑樹--數據結構與算法之美--CH25、C26

文章目錄1. 平衡二叉樹引入2. 平衡二叉樹定義3. 紅黑樹4. 紅黑樹的操作技巧 1. 平衡二叉樹引入   二叉查找樹支持快速插入、刪除、查找操作,各個操作的時間複雜度跟樹的高度成正比,理想情況下,時間複雜度是 O(logn)。

原创 二叉樹--數據結構與算法之美--CH23、CH24

文章目錄1. 什麼是樹2. 樹的基本概念3. 二叉樹3.1 滿二叉樹3.2 完全二叉樹3.3 二叉樹存儲3.4 二叉樹遍歷4. 二叉查找樹4.1 操作分析4.1.1 查找4.1.2 插入4.1.3 刪除4.1.4 其他4.2 支持

原创 AndroidStudio 中文亂碼導致編譯失敗問題解決

文章目錄1. 問題背景2. 原因分析3. 解決辦法 1. 問題背景 使用AndroidStudio4.1 Canary,調試github下載的QMUI Android。單獨執行lintrule的jar包gradle assembl