1. 看动画学算法
📄️ 1. 排序-冒泡排序
排序可能是所有的算法中最最基础和最最常用的了。排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序。
📄️ 2. 排序-插入排序
插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组。
📄️ 3. 排序-选择排序
选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交互。
📄️ 4. 排序-归并排序
归并排序简称Merge sort是一种递归思想的排序算法。这个算法的思路就是将要排序的数组分成很多小的部分,直到这些小的部分都是已排序的数组为止(只有一个元素的数组)。
📄️ 5. 排序-快速排序
快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢?
📄️ 6. 排序-count排序
今天我们介绍一种不需要作比较就能排序的算法:count排序。
📄️ 7. 排序-基数排序
之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。
📄️ 8. linkedList
linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。
📄️ 9. doublyLinkedList
今天我们来学习一下复杂一点的LinkedList:doublyLinkedList。
📄️ 10. 栈stack
栈应该是一种非常简单并且非常有用的数据结构了。栈的特点就是先进后出FILO或者后进先出LIFO。
📄️ 11. 平衡二叉搜索树AVL Tree
平衡二叉搜索树是一种特殊的二叉搜索树。为什么会有平衡二叉搜索树呢?
📄️ 12. 队列queue
队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。
📄️ 13. 双向队列dequeue
dequeue指的是双向队列,可以分别从队列的头部插入和获取数据,也可以从队列的尾部插入和获取数据。
📄️ 14. hashtable
java中和hash相关并且常用的有两个类hashTable和hashMap,两个类的底层存储都是数组,这个数组不是普通的数组,而是被称为散列表的东西。
