# DataStructure **Repository Path**: lixinye/DataStructure ## Basic Information - **Project Name**: DataStructure - **Description**: 数据结构、算法总结、学习算法的时间复杂度、空间复杂度、分析算法特点以及应用、Java面试难题、Android面试难题 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-29 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 数据结构与算法学习之路 ##### 下面的算法都打包在一个应用当中,你只需要下载安装即可,里面有算法的介绍,时间复杂度,空间复杂度,代码示例 - [时间复杂度介绍](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/TimeComplexityActivity.java) - [空间复杂度介绍](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/SpaceComplexityActivity.java) - [递归算法与非递归算法区别和转换](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/RecursionActivity.java) - [折半查找/二分查找算法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/RecursionActivity.java) - [链表实现](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/EasyLinkListActivity.java) - [反转一个链表](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/EasyLinkListReverseActivity.java) - [直接插入排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/DirectInsertSortActivity.java) - [快速排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/QuickSortActivity.java) - [选择排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/OptionSortActivity.java) - [冒泡排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/BubbleSortActivity.java) - [线程与锁详解](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/java/JavaThreadActivity.java) - 二叉树的遍历 - 二叉排序树 - [图的详解](https://github.com/UCodeUStory/DataStructure/blob/master/sources/tu.md) - 图的邻接表存储构成图 - [无向图的邻接表存储-深度优先搜索](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/UndirectedGraph.java) - [无向图的邻接表存储-广度优先搜索](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/UndirectedGraph.java) - [无向图的邻接矩阵存储-深度优先搜索](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/UndirectedGraphMatrix.java) - [无向图的邻接矩阵存储-广度优先搜索](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/UndirectedGraphMatrix.java) - 有向图的创建 - [拓扑排序-邻接矩阵存储-Kahn算法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/TopologicalOrderActivity.java) - 拓扑排序-邻接矩阵存储-深度优先搜索算法 - [最短路径算法之Dijkstra算法(狄克斯特拉算法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/graph/DjstaActivity.java) - [ArrayList实现原理](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/java/mylist/CJArrayList.java) - [LinkList双向实现](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/java/mylist/CJArrayList.java) - [堆排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/HeapSortActivity.java) - [归并排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/MergeSortActivity.java) - [希尔排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/ShellSortActivity.java) - [八大排序总结](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/EightSortDescriptionActivity.java) - [计数排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/CountSortActivity.java) - [同时找出最大值和最小值最优算法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/MaxMinSelectActivity.java) - [快速查找法,查找第k个最大的数](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/SelectIndexDataActivity.java) - [10亿数据查找前100个](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/sort/MaxDataSelectDataActivity.java) - [散列表(哈希表)](https://github.com/UCodeUStory/DataStructure/blob/master/hashtable.md) - [求最大不重复子串](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/other/MaxSubStringActivity.java) - [死锁](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/java/DeadLockDemo.java) - [两个线程交替输出1010](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/java/ThreadOneZero.java) #### 算法设计常用思想 - [贪婪算法之找零钱问题](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/Greedy.java) - [贪婪算法之01背包问题](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/Greedy01Bag.java) - [分治算法之二分法查找](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/BinearySearch.kt) - [分治算法之字符串全排列](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/StringFullArrangement.kt) - [分治算法之快速排序](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/QuickSort.kt) - [分治算法之合并排序] - [迭代算法之欧几里得算法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/IterationGCD.kt) - [迭代算法和递归算法区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/iterationAndroidrecursion.md) - [迭代算法之二分逼近法](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/TwoSeparate.kt) - [动态规划法之01背包问题](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/DynamicProgram.kt) - [动态规划法之装配站问题] - [穷举算法之百钱买鸡](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/exhaustion100buychicken.kt) - [穷举算法之鸡兔同笼](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/exhaustionchickenrabbit.kt) - [穷举算法之853桶分4升水的分法有多少种](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/exhaustionbucket.kt) - [穷举算法之爱因斯坦的思考](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/exhaustionAlbertEinstein.kt) - [穷举加分治算法之24点计算](https://github.com/UCodeUStory/DataStructure/blob/master/app/src/main/java/com/wangpos/datastructure/algorithm/exhaustion24.kt) #### Java 常见问题 - [Java 基础面试题](https://github.com/UCodeUStory/DataStructure/blob/master/sources/javabasic.md) - [Java垃圾回收机制](https://github.com/UCodeUStory/DataStructure/blob/master/sources/JavaGarbageCollection.md) - [Java 强、软、弱、虚引用](https://github.com/UCodeUStory/DataStructure/blob/master/sources/reference.md) - [Java 线程池实现原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/thread_principle.md) - [weakHashMap](https://github.com/UCodeUStory/DataStructure/blob/master/sources/weakHashMap.md) - [tomcat 旧版本 使用currentHashMap和weakHashMap做分代缓存](https://github.com/UCodeUStory/DataStructure/blob/master/sources/tomcat_cache.java) - [tomcat 新版本 使用LRU缓存,最后也被废弃了](https://github.com/UCodeUStory/DataStructure/blob/master/sources/tomcat_lru_cache.java) - [Java 实现LRU缓存3种方式 ](https://github.com/UCodeUStory/DataStructure/blob/master/sources/lru.md) - [LinkHashMap 实现FIFO](https://github.com/UCodeUStory/DataStructure/blob/master/sources/fifo.md) - [Java 集合原理](http://wiki.jikexueyuan.com/project/java-collection/hashset.html) - [wait 和 sleep区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/wait_sleep.md) - [yield()和join()](https://github.com/UCodeUStory/DataStructure/blob/master/sources/yield_join.md) - [HashMap冲突](https://github.com/UCodeUStory/DataStructure/blob/master/sources/hash_confict.md) - [Java 8十大特性](https://github.com/UCodeUStory/DataStructure/blob/master/sources/java8.md) - [Java 克隆](https://github.com/UCodeUStory/DataStructure/blob/master/sources/javaCopy.md) - [Java foreach原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/foreach.md) - [synchronized 和 Lock区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/synchronized_lock.md) - [BlockingQueue和BlockingDequeu详解](https://github.com/UCodeUStory/DataStructure/blob/master/sources/blockqueue.md) - [锁类型详解](https://github.com/UCodeUStory/DataStructure/blob/master/sources/locktype.md) - [Condition实现对锁进行更精确的控制](https://github.com/UCodeUStory/DataStructure/blob/master/sources/condition.md) - [LinkBlockingQueue原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/linkblockingqueue.md) - [多个线程安全的原子化操作组合将不再是安全的](https://github.com/UCodeUStory/DataStructure/blob/master/sources/automizationoperation.md) - [CopyOnWriteArrayList原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/copyOnWriteArrayList.md) - [ConcurrentHashMap原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/concurrentHashMap.md) - [分布式锁-分段锁思想]() - [Atomic包的原理及分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/javaconcurrent/atomic.md) - [CAS实现自旋线程安全](https://github.com/UCodeUStory/DataStructure/blob/master/sources/javaconcurrent/selfRotate.md) - [Java泛型使用]() - Java NIO #### Android 常见问题 1. [Volley源码分析经典算法](https://github.com/UCodeUStory/DataStructure/blob/master/sources/volley_algorithm.md) 2. [Android Design Support Library包含内容](https://github.com/UCodeUStory/DataStructure/blob/master/sources/adsl.md) 3. [Android v4 v7 v8 v13区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/v4_v7_v8_v13.md) 4. [Android Design Support Library V28 新增加内容](https://github.com/UCodeUStory/DataStructure/blob/master/sources/design_v28.md) 5. [Android网络数据安全](https://github.com/UCodeUStory/DataStructure/blob/master/sources/netsafe.md) 6. [Android Binder 原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/binder.md) 7. [Android应用架构设计](https://github.com/UCodeUStory/DataStructure/blob/master/sources/frame.md) 8. [热修复技术和原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/hotfix.md) 9. [Android 8.0 WorkManager后台任务可以保活](https://github.com/UCodeUStory/DataStructure/blob/master/sources/workManager.md) 10. [JNI双进程保活] 11. [Android 应用启动流程](https://github.com/UCodeUStory/DataStructure/blob/master/sources/app_start_step.md) 12. [Activity和Fragment和Service生命周期] 13. [Handler机制] 14. [AsyncTask源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/asynctask.md) 15. [Android 图片下载](https://github.com/UCodeUStory/DataStructure/blob/master/sources/imagedownload.md) 16. [OnNewIntent 什么时候被调用](https://github.com/UCodeUStory/DataStructure/blob/master/sources/activity_onnewIntent.md) 17. [Android两种虚拟机区别和联系](https://github.com/UCodeUStory/DataStructure/blob/master/sources/davik_art.md) 18. [View的源码分析(绘制流程以及刷新机制)](https://github.com/UCodeUStory/DataStructure/blob/master/sources/view_root.md) 19. [RecyclerView 和ListView区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/recyclerView_listview.md) 20. [volatile原理](https://github.com/UCodeUStory/DataStructure/blob/master/sources/volatile.md) 21. [Fragment的懒加载实现](https://github.com/UCodeUStory/DataStructure/blob/master/sources/fragment_lazy_load.md) 22. [requestlayout,invalidate,postInvalidate 区别于联系](https://github.com/UCodeUStory/DataStructure/blob/master/sources/requestlayout_invalidate_postInvalidate.md) 23. [OnMeasure多次调用问题](https://github.com/UCodeUStory/DataStrucgitture/blob/master/sources/onMeasure.md) 24. ViewPager缓存原理 25. [多进程Application初始化问题](https://github.com/UCodeUStory/DataStructure/blob/master/sources/application.md) 26. [Application可以开线程替换Service处理后台任务吗](https://github.com/UCodeUStory/DataStructure/blob/master/sources/application_service.md) 27. [android.os.killProcess和System.exit(0)区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/killprocess_system_exit.md) 28. [线程通信有哪些方式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/thread_communication_way.md) 29. [ConstraintLayout 完全解析 快来优化你的布局](https://blog.csdn.net/lmj623565791/article/details/78011599?utm_source=tuicool&utm_medium=referral) 30. [Android 匿名共享内存原理](https://www.jianshu.com/p/d9bc9c668ba6) 31. [Binder 原理深度剖析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/binder.md) 32. [MediaPlayer生命周期](https://github.com/UCodeUStory/DataStructure/blob/master/sources/media_player.md) 33. [TransactionTooLargeException解决方法](https://github.com/UCodeUStory/DataStructure/blob/master/sources/transactiontoolargeexception.md) 34. [谈一下Http请求过程](https://github.com/UCodeUStory/DataStructure/blob/master/sources/http.md) 35. [Android 进程通信种类](https://github.com/UCodeUStory/DataStructure/blob/master/sources/androidipc.md) #### 设计模式 1. [面向对象的七种设计原则](https://github.com/UCodeUStory/DataStructure/blob/master/sources/seven_design_principles.md) 2. [建造者模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/kotlin/builderModel.kt) 3. [命令模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/commandPattern.md) 4. [享元模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/flyweightpattern.md) 5. [模板方法模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/templateMethod.md) 6. [责任链模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/chainofResponsibility.md) 7. [建造者模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/builder.md) 8. [原型模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/prototype.md) 9. [观察者模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/observer.md) 10. [策略模式与命令模式区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/stragetyAndcommanddiff.md) 11. [桥接模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/bridge.md) 12. [组合模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/composite.md) 13. [适配器模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/adapter.md) 14. [装饰者模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/decorator.md) 15. [外观模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/facade.md) 16. [状态模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/state.md) 17. [状态模式与策略模式区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/state.md) 18. [迭代器模式]基本用不到 19. [备忘模式]很简单、就是有个管理员保存一些对象 20. [访问者模式] 不常用,不好用,不信你擦擦 21. [中介模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/mediator.md) 22. [解释器模式] 23. [代理模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/proxy.md) 24. [简单工厂模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/simpleFactory.md) 25. [工厂模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/factory.md) 26. [抽象工厂](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/abstractfactory.md) 27. [委托设计模式](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/delegation.md) 28. [适配器模式 与(装饰者、代理模式)区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/adapterdiffdecorator.md) 29. [装饰器模式和代理模式区别](https://github.com/UCodeUStory/DataStructure/blob/master/sources/designpattern/proxyidiffdecorator.md) #### Android 框架使用说明 1. [Rxjava使用](https://github.com/UCodeUStory/DataStructure/blob/master/sources/rxjavademo.md) 2. [LiveData](https://github.com/UCodeUStory/DataStructure/blob/master/sources/livedata.md) 3. [RxCache] ##### Android框架源码分析 1. [EventBus源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/eventbus.md) 2. [Bufferknife源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/butterknife.md) 3. [Glide 源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/glide.md) 4. [Picasso 源码分析] 5. [OKHttp 源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/okhttp.md) 6. [Retrofit 源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/retrofit.md) 7. [ARouter 源码分析] 8. [LeakCanary 源码分析] 9. [Blockcanary 源码分析] 10. [Lifecycler源码分析] 11. [RxJava 源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/androidopensources/rxjavasource.md) 12. [ViewModel 源码分析](https://github.com/UCodeUStory/DataStructure/blob/master/sources/viewmodel.md)