算法
文章平均质量分 79
Leon_George
一只始终飞翔在嵌入式Linux ARM开发中的黑鸟,对bootloader、跟文件系统和Linux内核裁剪,以及对Linux底层应用和驱动开发也有些许心得。有志同道合的同学请关注我哦。
展开
-
谈谈hash算法
哈希算法的设计是一个需要考虑许多因素的复杂问题。然而对于某些要求不高的场景,我们也能设计一些简 单的哈希算法。:对输入的每个字符的 ASCII 码进行相加,将得到的总和作为哈希值。:利用了乘法的不相关性,每轮乘以一个常数,将各个字符的 ASCII 码累积到哈希值中。:将输入数据的每个元素通过异或操作累积到一个哈希值中。**旋转哈希 **:将每个字符的 ASCII 码累积到一个哈希值中,每次累积之前都会对哈希值进行旋转操作。原创 2024-08-24 16:14:34 · 815 阅读 · 0 评论 -
二叉树的介绍
本文讲述了二叉树的类型,及其两种表示方法(链式、数组式)和三种递归式遍历方法(前序、中序、后序);之后,介绍了二叉搜索树的常见操作(查找、插入、删除)及其应用(中序遍历二叉搜索树可以将节点按照升序进行排序,平均时间复杂度为log(n) )。原创 2024-08-24 23:42:41 · 1110 阅读 · 1 评论 -
排序系列一: 选择排序法
Hello,大家好!应广大"鸟友"强烈要求,小编将会推出《排序系列》,给大家讲讲排序那些事。 那么今天首先给大家讲解最符合人类思维逻辑的超简单排序法☞《选择排序法》。 顾名思义,选择排序法就是"先选后排"。假定待排序数字序列均为整数,且共有NUM个,大小随机排列,存放在list[NUM]中。 ...原创 2017-06-01 10:37:08 · 260 阅读 · 0 评论 -
爬楼梯问题
最近看到很有意思的一道题目,问的是☞有一座高度10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。例如,每次走1级台阶,一共走10步,这是其中一种走法;或者每次垮两级台阶,一共走5步;and so on.问一共有多少种走法。 当楼梯级数很小时,凭借我们大脑弱小的计算能力,可以很快的得出答案。例如台阶数为1时,当然只...原创 2017-06-07 09:02:22 · 210 阅读 · 0 评论 -
排序系列之四: 冒泡排序法
Hello,大家好。今天继续给大家讲解排序系列之☞《冒泡排序算法》 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由...原创 2017-06-04 07:27:17 · 124 阅读 · 0 评论 -
二叉搜索树详解
在计算机科学中,二叉搜索树(Binary Search Tree)(有时称为有序或排序的二叉树)是一种能存储特定数据类型的容器。二叉搜索树允许快速查找、添加或者删除某一个节点,并且它是动态的集合。 二叉搜索树按照关键字顺序地保存节点,因此查找和其他操作可以使用二叉搜索原理:当在树(或者寻找插入新节点的地方)中查找节点时,它从根节...原创 2017-07-26 12:05:20 · 302 阅读 · 0 评论 -
等价类算法之链表法
☞问题描述:通过自定义输入n对偶对(偶对中的两个元素同属于一类),通过等价类算法编程,求出共有哪几种类并分别打印它们。 ☞求解步骤: 思考1.何为等价类? 定义在集合S上的关系'≡'称为 集合S上的等价关系,当且仅当它在 S上是自反的reflexive(x=x)、对称的symmetric(...原创 2017-06-15 22:53:31 · 842 阅读 · 0 评论 -
排序系列三: 二分查找法
Hello,大家好,今天给大家继续讲解排序系列。可能有细心的"鸟友"会问,你不是讲解排序吗?怎么今天的主题是一个查找方法咧? 不错,因为考虑到在实际项目中,排序和查找经常是两个好基友,二者息息相关,相互依存。故为了大家更好的接手老板交给你的实际工作,而不至于被说成是"新兵蛋子",我觉得大家有必要和我来学学这个查找法。 ...原创 2017-06-03 10:47:35 · 224 阅读 · 0 评论 -
爬楼梯问题之二
正如前文所说,我们把爬上N个台阶共有有多少种方法这一问题通过递归的方法得以了解决,但问题虽然解决了可我们想过这个程序的时空复杂度没有? 首先,时间复杂度。它的时间复杂度是O(2^n),随着楼梯台阶数的增长程序的运行时间呈指数增长。这是一种我们最不想看到的情况。再次,空间复杂度。由于采取函数的嵌套调用,程序运行所需空间也是相...原创 2017-06-08 08:42:08 · 167 阅读 · 0 评论 -
排序系列之六:快速排序法进阶
Hello,大家好,今天继续排序系列之六讲☞《快速排序法进阶》,之所以称为进阶,那肯定是因为比vision 1.0高明。为了方便大家比较,首先同大家一起回顾一下第一版快速排序的原理。 首先拿序列的最后一项作为基准,其余项依次和他做比较,凡是比他小的都通过交换函数swap()依次和list[0],list[1]...进行交换,最...原创 2017-06-30 10:38:24 · 167 阅读 · 0 评论 -
排序系列之二: 快速排序法
Hello,大家好,今天继续排序系列之二讲☞《快速排序法》!在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现来。废话不多说,直接进入算法原理。 ...原创 2017-06-02 10:20:26 · 109 阅读 · 0 评论 -
排序系列五----插入排序法
1.定义 将无序序列中的各元素依次插入到已经有序的线性表中。 2.分析 在线性表中,只包含第一个元素的子表显然是有序表。接下来从线性表的第二个元素开始直到最后一个元素,逐次将其中的每一个元素插入到前面的有序表中。一般来说,假设...原创 2017-06-22 11:19:22 · 173 阅读 · 0 评论 -
最全详解关键路径法
关键路径法是软考的知识点,我分析了常见的模棱两可的知识点,并进行了图解说明,现在分享给正在准备参加软考试的广大考友。原创 2019-10-24 13:01:38 · 30911 阅读 · 4 评论 -
二叉搜索树种数求解
1 求指定节点数的二叉搜索树的种数给你一个整数n,求由值为1到n的这n个节点能组成互不相同的二叉搜索树的种数。**方法一:**卡塔兰数【时间复杂度O(N),空间复杂度O(1)。】原理:任何长度的不同二叉搜索树的种类递推公式为:C n+1 =C n ∗2(2n+1)/(n+2)C~n+1~ = C~n~ * 2(2n+1)/(n+2)C n+1 =C n ∗2(2n+1)/(n+2)typedef long原创 2022-01-23 13:02:27 · 946 阅读 · 0 评论