
算法研究
文章平均质量分 83
算法解答
阿瑞的博客
你请不必打听我大名,望望无尽夜星,仍旧照亮你这一刹心境
展开
-
# 数据结构和算法面试题系列-随机算法总结
随机算法涉及大量概率论知识,有时候难得去仔细看推导过程,当然能够完全了解推导的过程自然是有好处的,如果不了解推导过程,至少记住结论也是必要的。本文总结最常见的一些随机算法的题目,是几年前找工作的时候写的。需要说明的是,这里用到的随机函数假定它能随机的产生范围[a,b]内的整数,即产生每个整数的概率相等(虽然在实际中并不一定能实现,不过不要太在意,这个世界很多事情都很随机)。原创 2023-04-26 23:20:50 · 838 阅读 · 0 评论 -
数据结构和算法面试题系列-排序算法之快速排序
快速排序也是基于分治模式,类似归并排序那样,不同的是快速排序划分最后不需要merge。对一个数组A[p..r]A[p...r]A[p...q-1]A[q+1...r]A[p...q-1]A[q]A[q+1...r]A[q][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-63GtmUft-1682512340729)(null)]快速排序算法不算复杂的算法,但是实际写代码的时候却是最容易出错的代码,写的不对就容易死循环或者划分错误。原创 2023-04-26 20:33:18 · 635 阅读 · 0 评论 -
数据结构和算法面试题系列-排序算法之快速排序
快速排序也是基于分治模式,类似归并排序那样,不同的是快速排序划分最后不需要merge。对一个数组A[p..r]A[p...r]A[p...q-1]A[q+1...r]A[p...q-1]A[q]A[q+1...r]A[q][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tzEJN01W-1682438818684)(null)]快速排序算法不算复杂的算法,但是实际写代码的时候却是最容易出错的代码,写的不对就容易死循环或者划分错误。原创 2023-04-26 00:07:50 · 532 阅读 · 0 评论 -
数据结构和算法面试题系列-排序算法之基础排序
排序算法也是面试中常常提及的内容,问的最多的应该是快速排序、堆排序。这些排序算法很基础,但是如果平时不怎么写代码的话,面试的时候总会出现各种bug。虽然思想都知道,但是就是写不出来。本文打算对各种排序算法进行一个汇总,包括插入排序、冒泡排序、选择排序、计数排序、归并排序,基数排序、桶排序、快速排序等。快速排序比较重要,会单独写一篇,而堆排序见本系列的二叉堆那篇文章即可。需要提到的一点就是:插入排序,冒泡排序,归并排序,计数排序都是稳定的排序,而其他排序则是不稳定的。原创 2023-04-25 23:53:03 · 513 阅读 · 0 评论 -
数据结构和算法面试题系列-二分查找算法详解
二分查找本身是个简单的算法,但是正是因为其简单,更容易写错。甚至于在二分查找算法刚出现的时候,也是存在bug的(溢出的bug),这个bug直到几十年后才修复(见《编程珠玑》)。本文打算对二分查找算法进行总结,并对由二分查找引申出来的问题进行分析和汇总。若有错误,请指正。原创 2023-04-25 23:50:42 · 565 阅读 · 0 评论 -
数据结构和算法面试题系列-二叉树面试题汇总
解决这两个问题的方案非常简单:在每次递归调用的时候,更新当前遍历结点的。原创 2023-04-22 17:57:12 · 842 阅读 · 0 评论 -
数据结构和算法面试题系列-二叉树基础
int value;} BTNode;其中value存储值,left和right指针分别指向左右子结点。二叉搜索树跟二叉树可以使用同一个结构,只是在插入或者查找时会有不同。原创 2023-04-22 17:47:23 · 657 阅读 · 0 评论 -
数据结构和算法面试题系列-二叉堆
使用数组来实现二叉堆,二叉堆两个属性,其中LENGTH(A)表示数组A的长度,而则表示存放在A中的堆的元素个数,其中,也就是说虽然都可以包含有效值,但是之后的元素不属于相应的堆。二叉堆对应的树的根为A[0],给定某个结点的下标 i ,可以很容易计算它的父亲结点和儿子结点。注意在后面的示例图中我们标注元素是从1开始计数的,而实现代码中是从0开始计数。注:堆对应的树每一层都是满的,所以一个高度为h的堆中,元素数目最多为(满二叉树),元素数目最少为。由于元素数目,所以,因此h = lgn。原创 2023-04-22 17:45:16 · 526 阅读 · 0 评论 -
数据结构和算法面试题系列-栈
我们使用结构体来定义栈,使用柔性数组来存储元素。几个宏定义用于计算栈的元素数目及栈是否为空和满。int top;} Stack;原创 2023-04-22 17:43:27 · 545 阅读 · 0 评论 -
数据结构和算法面试题系列-链表
先定义一个单向链表结构,如下,定义了链表结点和链表两个结构体。这里我没有多定义一个链表的结构体,保存头指针,尾指针,链表长度等信息,目的也是为了多练习下指针的操作。// 链表结点定义int value;} listNode;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PfeF6Pp6-1682156358128)(null)]原创 2023-04-22 17:41:33 · 645 阅读 · 0 评论 -
数据结构和算法面试题系列—字符串
字符串作为数据结构中的基础内容,也是面试中经常会考察的基本功之一,比如实现 strcpy,strcmp等基本函数等,回文字符串,字符串搜索,正则表达式等。原创 2023-04-16 10:32:58 · 484 阅读 · 0 评论