- 博客(16)
- 收藏
- 关注
原创 已知顺序表中有m个记录,表中记录不依关键字有序排列,编写算法,为该顺序表建立一个有序的索引表,索引表中的每一项包含所记录的关键字和该记录在顺序表中的序号,要求算法时间复杂度在最好的情况下能达到O(m)
为无序顺序表建立有序索引表,要求时间复杂度在最好情况下达到O(m)。关键点在于利用插入排序的特性:当原始数据已有序时,插入排序时间复杂度为O(m)。:对索引数组进行插入排序,利用其适应性特点。输入数据:10 20 30 40 50。:创建包含原始位置和关键字的索引数组。最好情况(输入已有序):O(m)输入数据:40 30 20 10。输入数据:3 1 4 1 5 9。:相等元素不交换,维持原有顺序。平均情况:O(m²)空间复杂度:O(m)
2025-03-25 23:17:52
223
原创 利用二叉树遍历思想设计算法,判断一棵二叉树是否为平衡二叉树。如果是平衡二叉树,则返回true,否则返回false。二叉树采用二叉链表存储表示。
【代码】利用二叉树遍历思想设计算法,判断一棵二叉树是否为平衡二叉树。如果是平衡二叉树,则返回true,否则返回false。二叉树采用二叉链表存储表示。
2025-03-25 22:56:18
128
原创 C++实现数字组合(递归)
设整数x1,x2,...xn已存放在数组A中,编写一递归过程,输出从这n个数中取出所有k个数的所有组合(k<=n)。例如,若A中存放的数是1,2,3,4,5,且k为3,则输出结果为:543,542,541,532,531,521,432,431,421,321。
2025-03-20 22:21:31
355
原创 以顺序存储结构表示串,设计算法。求串S中出现的第一个最长重复子串及其位置,并分析算法的时间复杂度。
以顺序存储结构表示串,设计算法。求串S中出现的第一个最长重复子串及其位置,并分析算法的时间复杂度。
2025-03-20 21:47:42
559
原创 给定nxm矩阵A[a..b,c..d],并设A[i,j]≤A[i,j+1](a≤i≤b,c≤j≤d-1)和A[i,j]≤A[i+1,j](a≤i≤b-1,c≤j≤d).设计一算法判定X的值是否在A中
给定nxm矩阵A[a..b,c..d],并设A[i,j]≤A[i,j+1](a≤i≤b,c≤j≤d-1)和A[i,j]≤A[i+1,j](a≤i≤b-1,c≤j≤d).设计一算法判定X的值是否在A中,要求时间复杂度为O(m+n)。
2025-03-20 20:39:18
251
原创 假设称正读和反读都相同的字符序列为“回文”,例如“abcba”是回文,“abcde”则不是回文。试写一个算法判别读入一个以“@”作为结束符的字符序列是否是“回文”。
【代码】假设称正读和反读都相同的字符序列为“回文”,例如“abcba”是回文,“abcde”则不是回文。试写一个算法判别读入一个以“@”作为结束符的字符序列是否是“回文”。
2025-03-18 20:32:12
62
原创 已知带头结点的单链表有data和next两个域,设计一个算法,将该链表中的重复元素结点删除(C++实现)
我们设置两个指针p,q,p指针指向当前检查的结点,q指针是工作指针,用来遍历链表,查找与p指针所指结点值相同的结点。找到后就将其所指结点删除。重复操作直到p指针将整个A链表遍历完毕。
2025-03-18 18:29:36
198
原创 已知两个链表A和B分别表示两个集合,其元素递增排序。编写一函数,求A与B的交集,并存放于链表A中(C++语言)
已知两个链表A和B分别表示两个集合,其元素递增排序。编写一函数,求A与B的交集,并存放于链表A中,最终将合并后的A链表打印输出。(1)若存在,则跳过A链表中该结点并继续检查下一结点在B链表中是否存在。(2)若不存在,将p指针指向的结点从A链表中移除。重复上述操作直到整个A链表遍历完毕。
2025-03-18 17:34:39
257
原创 关于Ajax回调函数返回值为undefined的解决办法
在前端代码success参数的回调函数中,我使用res.code返回了后端传过来的json数据,但是始终不能得到数据,找了很久终于找到大神给出的解答。对返回的数据进行处理,将返回数据转换为json对象就可解决,在回调函数中加入。
2022-12-25 22:23:43
1521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人