摘要: 哈希表简介 哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,插入和查找的时间复杂度都是为O(1),因为哈希表的查找速度非常快,所以在很多程序中都有使用哈希表,例如拼音检查器。 哈希表也有自己的缺点,哈希表是基于数组的,我们知道数组创建后扩容成本比 阅读全文
posted @ 2019-08-22 22:52 平头哥的技术博文 阅读(1068) 评论(0) 推荐(1) 编辑
摘要: 跳表的原理 跳表也叫跳跃表,是一种动态的数据结构。如果我们需要在有序链表中进行查找某个值,需要遍历整个链表,二分查找对链表不支持,二分查找的底层要求为数组,遍历整个链表的时间复杂度为O(n)。我们可以把链表改造成B树、红黑树、AVL树等数据结构来提升查询效率,但是B树、红黑树、AVL树这些数据结构实 阅读全文
posted @ 2019-08-22 22:48 平头哥的技术博文 阅读(3207) 评论(0) 推荐(1) 编辑
摘要: 原理 二分查找(Binary Search)算法,也叫折半查找算法。二分查找的思想非常简单,有点类似分治的思想。二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。 为了方便理解,我们以数组 ,在数组中查找 阅读全文
posted @ 2019-08-22 22:43 平头哥的技术博文 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序(Bubble Sort) 原理 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 图解 图片来源网络,侵权即删 性能 时间复 阅读全文
posted @ 2019-08-22 22:33 平头哥的技术博文 阅读(476) 评论(0) 推荐(1) 编辑