- 博客(11)
- 收藏
- 关注
原创 (java)排序算法的全部解析和代码
假设是小的在前,大的在后,比错位文件大就往后拨一位,空出大的文件位置,看下一个文件,直到找到比错位文件小的,就在他之后的位置放下错位文件。1.从前往后找到第一个错位的文件把要排序文件拿在手里,此时错位位置是空的,错位位置之前的都是排序好的文件。2.从错位文件位置往前挨个与排序好的文件比对顺序,(顺序取决于你是升序还是降序)从左往右缩减遍历区间,每次从遍历区间选个最小的和 左边界交换位置。内层循环是从错位位置往前摆放错位文件。类似与给一个乱序文件柜的文件排序,红色是第一层循环,绿色是第二层。
2023-08-01 17:02:04
147
1
原创 (java)时间频度,时间复杂度,解析
例1的时间复杂度是n+1是因为要做100次total+=i 最后判断i<=end也算一次,则有100的参数需要执行101条代码。如果两个频度的时间复杂度一样就叫同数量级函数记作T(n) = O(f(n))时间频度就是参数n表示的代码条数,时间复杂度是时间频度的化简求极限。把时间频度的表达式,去掉低阶项和常数项和最高价项系数就是时间复杂度。1.时间频度:根据参数来表示算法的代码执行次数(按条),图中频度是2n+1,复杂度为n,特点执行条数随n增长。O(f(n))称为算法的渐进时间复杂度。
2023-08-01 13:33:43
448
1
原创 递归,走迷宫和搜索问题(dfs和bfs)的超详细解析和代码
dfs的图像大概长这样图中每一个圆圈都是一次递归(节点),每一个节点会向自己四个方式扩展4个子节点,然后子节点又会扩展四个子子节点.直到遍历整个二维数组地图,这时地图的面积就是节点的面积,所以dfs的地图面积不能超过1024,超过了需要用bfs。3.for四个方向的偏移量,遍历x和y的偏移量数组加给参数的x和y得到走一步的坐标,再用走一步的坐标进行递归,递归的前提是走一步的坐标不能超过地图边界,坐标指向的不能是墙,1.首先做个偏移量数组一个是x一个是y ,根据x,y的增长值的不同决定往那边走,
2023-04-20 20:18:32
999
原创 完整版逆波兰计算器(中缀转后缀,多位数运算)的解析和代码
2.遇到符号做判断,当前的和栈顶(之后的和过去的)那个优先级更大,如果过去的(栈顶的)更大,那就把过去(栈顶)的加入数栈,再把当前的符号加到符号栈,如果当前的大就直接入符号栈。(虽然这里说明用的是栈,但是数栈既不需要peek,也不需要pop,只用往里面加,所以用Arraylist也是一样的)3如果遇到括号,左括号直接进符号栈,遇到右括号时,不停把符号栈的符号提取出来加到数栈里。原来:1((2+3)*4)-5,之后:1, 2, 3, +, 4, *, 5, -有两个栈,数栈和符号栈,1,遇到数字直接加,
2023-04-20 16:40:37
308
原创 环形队列的解析和代码(java)
2.加入数字,判断满了没有,再加,拿数字,判断空了没,然后(rear或head +1) %maxsize。4遍历展示,索引是head - head+size(),然后取模于maxsize做数组的索引进行输出。要考虑两种情况,一种是rear 在上,head 在下,另一种是rear在下head在上,1空没rear==head,满没 (rear+1)%maxsize == head,环形队列是在数组上滚动存在的,也就是当他的rear大于最大容量时会回到一开始。所以环形队列的实际的最大存储空间要比数组长度小1,
2023-04-15 19:55:20
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人