算法设计与分析基础
文章平均质量分 61
望北i
写博客是为了总结自己所学,有什么不对的地方还希望大佬们多多指点
展开
-
Horspool算法
概念horspool算法为字符串匹配算法,这是一个空间换时间的算法,算法把模式和文本的开头字符对齐,从模式的最后一个字符开始比较,如果尝试比较失败了,它把模式向后移。每次尝试过程中比较是从右到左的。我们不会像蛮力法那样移动一格,根据不同情况移动,有以下四种情况如果模式中不存在c(在我们的例子中,c就是字母S),模式安全移动的幅度就是他的全部长度文本:S0 S1 S2……… D……………………模式 B A R E B R移动:原创 2021-06-16 15:31:12 · 7579 阅读 · 2 评论 -
折半查找(C语言)
折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, 则搜索过程结束;如果某一特定元素大于或者小于中间元素, 则在数组大于或小于元素的那一半中查找, 而且跟开始一样从中间元素开始比较. 若某1个步骤中数组为空, 则代表找不到.。这种方法对待查找的列表有两个要求必须采用顺序存储结构必须按关键字大小有序排列分析该源代码是按照从小到大的顺序排列的,若是未排序的数组,可先选择合适的算法排序。源代码原创 2021-06-03 22:02:50 · 2679 阅读 · 2 评论 -
比较计数排序与分布计数排序
比较计数排序针对排序列表中的每一个元素,算出列表中小于该元素的元素个数,并把结果记录在一张表中。这个“个数”指出了该元素在有序列表中的位置。例如一个列表A中有一个元素为10,而小于10的元素个数有5个,那么10应该排在第六个位置上,也就是A[5](下标从0开始)。这个算法称为比较计数排序。下面来个图形象的说明。A[0…5] 62 31 84 96 19 47count[] 0 0 0 0 0 0首先用于计数的数组清零。A[0…5] 62 31 84 96 19 47count[] 3 0 1转载 2021-06-02 18:13:25 · 712 阅读 · 0 评论 -
分治法
分治法分治法的基本思想将原始问题划分或归结为规模较小的子问题递归或迭代求解每个子问题将子问题的解综合得到原问题的注:子问题与原始问题完全一样子问题之间可彼此独立的求解递归停止时,子问题可直接求解算法设计思想将原问题归结为规模为 n - 1 的2个子问题继续归约,将问题归结为规模为 n - 2 的4个子问题,继续…当子问题规模为1时,归约过程截止从规模 1 到 n - 1 ,陆续组合两个子问题的解,直到规模为n分治算法的一般性描述Divide(P)if |P| <=原创 2021-05-18 10:36:50 · 172 阅读 · 3 评论 -
蛮力算法求解最近对
蛮力算法最近对问题描述:一个包含n个点的集合中,找出距离最近的两个点。问题分析:假设所考虑的点是以标准的笛卡尔坐标形式( x ,y )给出的,两个点pi = ( xi ,yi )和 pj =( xj,yj )之间的距离是标准的欧几里得距离d( pi , pi )=这里是引用...原创 2021-05-17 22:17:12 · 2943 阅读 · 1 评论 -
蛮力法冒泡排序
蛮力法冒泡排序蛮力法在冒泡排序上,比较数组中相邻元素,如果它们是逆序的话,就交换它们的位置。重复多次以后,最终最大的元素就沉到数组最后一个位置,第二遍将第二大的元素沉下去。一直这样做,直到 n - 1 遍以后,该数组就排好序了。第 i (0 <= i <= n - 2) 遍冒泡排序可以用A[0] , A[j] , A[j], … , A[n - i - 1] | A[n - i] <= … A[n - 1];算法 BubbleSort(A [ n] )//该算法用原创 2021-05-16 23:16:27 · 3033 阅读 · 7 评论