- 博客(12)
- 收藏
- 关注
原创 对数器的使用
(3)进行10000次随机建立并isSort检测(也就是随机生成10000个例子),如果报错,那就打印该报错情况(通过temp备份数组来打印)以选择排序为例子,那么后面的数都比前面的数大;如果后面有一个数比前面的小,那么就退出循环并打印“选择排序错误”对数器可以实现引用大数据例子但是代码存在BUG用眼睛或小数据例子看不出来的情况。我们给该函数一个最大长度和最大数值,令其生成一个完全数据与长度随机的数组。注意进行int强制类型转换的时候一定要将后面所有的都用括号括起来。未来学习中会经常使用。
2024-06-22 13:50:08
128
1
原创 随机函数及其应用
(1)假设函数生成0~1的数都是等概率的,那么在0~1内的任何数的大小都应该与其大小相等,例如进行10000次生成数,那么生成0.3这个数的频率应约等于其概率,也为0.3。我们可以调用两次x(),虽然同时为0或者同时为1的情况不相等,但是第一次为0第二次为1与第一次为1第二次为0的概率是相等的。(1)假设该函数可以进行乘法运算,那么说明之前从[0,1)的取值范围,如果×8的话,取值范围将变成[0,8)(1)假设将函数强制进行(int)类型转换,并且假设函数*k,那么取值范围就是[0,k-1],的随机整数。
2024-06-22 10:52:13
557
原创 前缀和数组
假设有一个数组arr[5]={1,2,3,4,5},我们想求得arr[2]~arr[4]的累加和,那么就要实现sum=arr[2]+arr[3]+arr[4]这一操作;所以如果我们想求得arr[l]~arr[r]的和,那么就要重复以上操作复杂思路是建立一个正方形表格,把所有可能出现的累加和都记录下来,随时调用,但可能会显得麻烦,而且时间复杂度和空间复杂度都变高了。
2024-06-21 13:29:07
117
原创 位运算所包含的数据储存常识
1.数据在计算机里存储为32位,如何写一个函数以二进制打印int型数据在计算机的存储形式?2.正数与负数的表达方式有什么不一样?3.int型与无符号型数据的存储范围是什么?为什么?4.java中“<<”(">>")和"<<<"(">>>")的区别是什么?
2024-06-18 14:56:24
432
1
原创 栈练习——验证栈序列
本题真的是练习栈这一数据结构的一道基础好题,基本思路就是先按pushed序列的顺序一个个元素入栈,之后每次看一下该元素是否可以按poped序列的元素一样,如果一样就出栈,一直到所有元素入栈并且所有元素出栈(栈里面没有元素卡在里面。给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 𝑛(𝑛≤100000)n(n≤100000)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出。一定一定一定要free设置的malloc数组!一定一定一定要初始化!对于每个询问输出答案。
2024-04-27 12:02:53
247
原创 KMP算法——串的模式匹配
串的模式匹配可以通过BF(暴力)的方法解决,但是时间复杂度可以达到o(m*n),而使用KMP大法,可以把时间复杂度减少到o(m+n)以下是暴力代码具体解释一下以下是通过BF直接解决的办法,就是将模式串一个一个与母串进行比较,如果不匹配,那么就将母链的第二个字符当做第一个字符与模式串再进行以上操作这样显然有些复杂而KMP大法可能比较难以理解,但其实完全可以在BF算法的基础上去理解KMP的基本原理。
2024-04-24 17:51:47
552
原创 队列练习——海港
第三艘船在第 1010 秒到达海港,最近 2424 小时到达的船是第一艘船、第二艘船和第三艘船,共有 4+2+1=74+2+1=7 个乘客,分别是来自国家 4,1,2,2,2,3,34,1,2,2,2,3,3,共来自 44 个不同的国家。第二艘船在第 33 秒到达海港,最近 2424 小时到达的船是第一艘船和第二艘船,共有 4+2=64+2=6 个乘客,分别是来自国家 1,2,2,3,2,31,2,2,3,2,3,共来自 33 个不同的国家。保证输入的 ti 是递增的,单位是秒;
2024-04-21 14:27:40
666
1
原创 队列练习——机器翻译
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。
2024-04-16 18:56:19
668
原创 栈——后缀表达式
洛谷题目如下:所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。本题中运算符仅包含 +-*/+-*/。保证对于 // 运算除数不为 0。特别地,其中 // 运算的结果需要(即与 C++运算的规则一致)。如:3*(5-2)+73*(5-2)+7 对应的后缀表达式为:3.5.2.-*7.+@3.5.2.-*7.+@。在该式中,为表达式的结束符号。为操作数的结束符号。
2024-04-15 21:08:01
529
原创 可记录下标的链表——队列安排
若 p 为 00,则表示将 i 号同学插入到 k 号同学的左边,p 为 11 则表示插入到右边。2∼N 号同学依次入列,编号为 i 的同学入列方式为:老师指定编号为 i 的同学站在编号为 1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;这让我不禁思考,我总是惯性的以为链表就是用结构体指针来实现的,但其实数组链表反而实现更轻松,用int也可以实现指针的操作。接下来 M 行,每行一个正整数 x,表示将 x 号同学从队列中移去,如果 x 号同学已经不在队列中则忽略这一条指令。
2024-04-13 11:02:13
281
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人