嵌入式学习day22

哈希表

哈希算法:

        将数据通过哈希算法映射成一个键值,存取都在同一位置实现数据的高效存储和查找,将时间复杂度尽可能降低至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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值