哈希表
哈希算法:
将数据通过哈希算法映射成一个键值,存取都在同一位置实现数据的高效存储和查找,将时间复杂度尽可能降低至O(1)
哈希碰撞:
多个数据通过哈希算法得到的键值相同,称为产生哈希碰撞
哈希表:
构建哈希表存放0-100之间的数据
哈希算法选择:
将0-100之间的数据的个位作为键值
哈希表的实现:

哈希表本质上是一个 linknode* 数组,每个元素指向一个链表的头结点
元素查找
哈希表销毁
排序和查找算法
冒泡排序
时间复杂度为O(n²)
稳定排序算法
相邻的两个元素比较,大的向后走,小的向前走
循环找len-1个大的值
选择排序
时间复杂度为O(n²)
不稳定排序算法
从前到后找最小值与前面的元素交换
找到len-1个最小值,最后一个最大值即排序完
插入排序
时间复杂度为O(n²);如果数组有序,时间复杂度降低至O(n)
稳定排序算法
将数组中的每个元素插入到有序数列中
先将要插入的元素取出
依次和前面元素比较,比元素大的向后走,直到前一个元素比要插入的元素小,或者到
达有序数列开头停止
插入元素即可
希尔排序
时间复杂度O(nlogn)
不稳定排序算法
通过选择不同的步长,将数组拆分成若干个小的数组实现插入排序
若干个小的数组称为有序数列后,使得数组中的数据大致有序
最后再对整体完成一个插入排序
快速排序
时间复杂度O(nlogn)
不稳定排序算法
选择左边的作为键值,从后面找一个比键值小的放前面,从前面找一个比键值大的放后面,键值放中间
左右两边元素则递归调用快速排序
折半查找(二分查找)
时间复杂度O(logn)
顺序查找
时间复杂度为O(n)
1017

被折叠的 条评论
为什么被折叠?



