数据结构与算法
文章平均质量分 73
算法题,ACM
不想想了
和尊重你的人同行,跟积极的人共事,与情绪好的人相处
展开
-
数据结构第二章线性表算法设计练习题(C语言)
2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。(2)将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。(3)已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出A与B的交集,并存放于A链表中。原创 2022-12-13 16:52:38 · 924 阅读 · 0 评论 -
数据结构-哈希表(java实现)
文章目录1、哈希表介绍2、哈希函数H(k)哈希函数的构造方法:(1)直接定址法(2)数字分析法(3)平方取中法(4)折叠法(5)除留余数法(6)随机数法3、解决哈希碰撞1、开放地址法2、链地址法(拉链法)4、实例:使用哈希表管理雇员信息1、哈希表介绍散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。(哈希表本质上就是个数组,转载 2020-12-18 11:29:16 · 2272 阅读 · 0 评论 -
算法中,算术表达式求值(前缀、中缀、后缀)(笔记小结)
文章目录基本理解中缀表达式转化为前缀表达式1,算法描述2,实例3,用前缀表达式的求值4,前缀表达式的计算机求值中缀表达式转化为后缀表达式1,算法描述2,实例3,用后缀表达式的求值4, 后缀表达式的计算机求值基本理解前缀、中缀、后缀是根据运算符与操作数的相对位置来划分的。三种表达式其实就是算术表达式的三种写法,以 3+4-5为例:①、前缀表达式(波兰式):操作符在操作数的前面,比如 +-543②、中缀表达式:操作符在操作数的中间,这也是人类最容易识别的算术表达式 3+4-5③、后缀表达式(逆波兰式转载 2020-12-23 15:12:50 · 2111 阅读 · 0 评论 -
杨辉三角里的算法
文章目录题目:题解:杨辉三角由来杨辉三角规律杨辉三角在编程实现题目:题目来源杭电ojProblem ID:2032题解:1,杨辉三角规律2,在编程中呈现3,简化思路#include<stdio.h>int a[31][31];int main() { int i,j; for(i=1;i<=30;++i) { a[i][1]=1; for(j=2;j<=i;++j) {原创 2020-12-10 13:31:13 · 2057 阅读 · 0 评论 -
算法复杂度((平均,最好,最坏,均摊)时间复杂度,空间复杂度)
文章目录前言时间&空间复杂度时间复杂度1.最好情况时间复杂度(best case time complexity)2.最坏情况时间复杂度(worst case time complexity)3.平均情况时间复杂度average case time complexity)4.均摊时间复杂度(amortized time complexity)空间复杂度前言1,算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。2,复杂度也叫渐进复杂度,包括时间复杂度和空间复转载 2020-12-08 23:20:58 · 4241 阅读 · 0 评论 -
简单理解二分查找算法(基于java)
文章目录二分查找算法是什么二分算法步骤描述java代码描述递归非递归二分查找中值的计算二分查找算法讨论:优点:缺点:思考:二分查找算法是什么二分查找(binary search),也称折半搜索,又称折半查找,是一种在 有序数组 中 查找某一特定元素 的搜索算法,即,一种效率较高的查找方法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则原创 2020-12-08 22:32:06 · 259 阅读 · 0 评论 -
二分查找算法实现(图解)与实例
文章目录二分查找的接口定义二分查找的实现与分析示例:二分查找的实现二分查找的例子:拼写检查器示例:拼写检查器的头文件现在我们来玩一个猜数的游戏,假设有一个人要我们猜0-99之间的一个数。那么最好的方法就是从0-99的中间数49开始猜。如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。重复这个过程来缩小猜测的范围,直到猜出正确的数字。二分查找的工作方法类似于此。二分查找操作的数据集是一个有序的数据集。开始时,先找出有序集合中间的那个元素。如果此元转载 2020-12-08 21:58:56 · 1551 阅读 · 0 评论 -
基础算法acm检验
看看你可以ACM入门吗前言昨天参加了一下校内ACM队选拔。第一次以考试竞赛做算法,紧张到连个数组定义都快忘了,读个题还读了几遍才反应过来。考完反省良多。顺便考后总结了一下题目,其实整体还是算蛮简单的,都是LeetCode上的简单题,也是一些基础题本篇博客主要是基于在去ACM选拔前做心理准备时,发现搜不到判断自己算法水平题时写的,只做参考1. 一维数组的动态和给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 n原创 2020-10-22 09:16:20 · 207 阅读 · 0 评论 -
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
文章目录题目:解决:完整代码加测试代码同理用其他语言:C++Python解法题目:给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。例如:输入[[1,2,3],[4,5,6],[7,8,9]]返回值[1,2,3,6,9,8,7,4,5]解决:1,找出螺旋的规律分析:1 2 3 返回螺旋 1 2 3 6 9 8 7 4 54 5 67 8 9 2,边界的判断,到达矩阵的中心最小的圈时终止。由于行列不相等,因此定义四个变量用于记录边界:左边界left原创 2020-12-01 12:58:44 · 4300 阅读 · 0 评论