五大常用算法资料课件目录•排序算法•搜索算法•图算法•分治算法•动态规划算法01排序算法简单排序算法冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成
冒泡排序时间复杂度:O(n^2)适用场景:数据量较小,对效率要求不高的场景冒泡排序比较排序算法时间复杂度:O(n^2)适用场景:数据量较小,对效率要求不高的场景选择排序是一种简单直观的排序算法
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
选择排序插入排序算法插入排序的工作方式是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入
插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间
插入排序0102插入排序适用场景:数据量较小,对效率要求不高的场景时间复杂度:O(n^2)02搜索算法最基础的搜索算法,逐个元素进行查找
线性搜索是一种最基本的搜索算法,它从数据结构的一端开始,逐个检查每个元素,直到找到目标元素或检查完所有元素为止
线性搜索的时间复杂度为O(n),其中n为数据结构中元素的数量
线性搜索在有序数组中查找某一特定元素的搜索算法
二分搜索是一种高效的搜索算法,它适用于有序数组
在每一步迭代中,算法将数组分为两半,并排除一半的元素,从而缩小搜索范围
二分搜索的时间复杂度为O(logn),其中n为数组中元素的数量
二分搜索VS通过哈希函数将关键字直接映射到数据结构中的位置进行查找的算法
哈希搜索利用哈希函数将关键字转换为数据结构中的位置,从而快速定位目标元素
哈希搜索的时间复杂度取决于哈希函数的设计和冲突解决策略,通常情况下为O(1)或O(log