数据结构-线性表
muse journal
草地上密密麻麻开满了二月兰,都一样啊,密密麻麻都一样,这里面有一个是我,有一个也许是你,不是天安门门口的迎宾花,也不是河间里的牛尾巴草,做二月兰也挺好的,但真正疼苦的是认识到自己只是一株二月兰,走不出这,一亩三分地。
展开
-
数据结构-线性表-应用题-2.2-14
n=(|S1|+|S2|+|S3|),时间复杂度为O(n),空间复杂度为O(1)。3)时间复杂度和三元组的元素个数有关,因为要依次遍历里面的元素。原创 2024-05-07 20:55:30 · 171 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-13
1)使用一个用于标记的数组B[n], B的下标也就是括号里的值对应正整数,B[n]对应的值用来标记是否已经出现过,1表示出现,0则未出现,B[0]对应正整数1,B[n-1]对应正整数n,从A[0]开始遍历A,若能查找到第一个满足B[i]==0的下标,返回i+1,即为结果,若B[i]全部不为0,则返回i+1,此时A中未出现的最小正整数是n+1。3)时间复杂度O(n),使用了额外的辅助数组B[n],空间复杂度O(n)原创 2024-05-07 20:22:21 · 362 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-12
1)算法的基本设计思想:依次扫描数组的每一个元素,将第一个遇到的整数num保存到c中,count记为1,若遇到的下一个整数还是等于num,count++,否则count--,当计数减到0时,将遇到的下一个整数保存到c中,计数重新记为1,反复该过程,直到扫描全部数组元素为止。获得最终的候选主元素,但此时还没完成,出现次数还要过半才行,判断c中元素是否是真正的主元素,再次扫描该数组统计c中元素出现的次数,再进一步进行判断。3)时间复杂度O(n),空间复杂度O(1)原创 2024-05-07 20:03:10 · 283 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-11
这是因为在每一步中,我们都根据两个序列的中位数的比较结果,舍弃了一定范围的元素,保留的元素范围都是包含中位数的。算法的原理是基于中位数的定义:对于一个有序序列,它的中位数是该序列中所有元素的中间值,即使序列长度为奇数时,它也正好位于序列的中间位置,如果长度为偶数,则是中间两个元素的平均值。- 如果一个中位数小于另一个中位数,那么说明这个中位数之前的元素一定不可能是整个序列的中位数,因此可以舍弃它们,同时舍弃另一个序列中对应位置之后的元素。- 如果两个中位数相等,则它们就是整个序列的中位数。原创 2024-05-07 16:43:49 · 338 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-10
3)上述算法中三个Reverse函数的时间复杂度分别为O(p/2),O((n-p)/2),O(n/2)三次翻转,将数组视为ab(a代表数组的前p个元素,b代表数组的余下n-p个元素)故设计算法的时间复杂度为O(n),空间复杂度为O(1)也可以先将a,b单独翻转,然后再整体翻转。两两对换,所以用了除以2次操作。原创 2024-05-07 16:02:10 · 180 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-9
线性表(a1,a2,a3,...,an)中的元素递增有序且按顺序存储于计算机内。要求设计一个算法,用最少的时间在表中查找数值为x的元素,若找到,则将其与后继元素位置相交换,若找不到,则将其插入表中并使表中元素仍递增有序。原创 2024-05-07 15:43:00 · 310 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-8
已知在一维数组A[m+n]中依次存放两个线性表(a1,a2,a3,...am)和(b1,b2,b3,...bm)编写一个函数,将数组中的两个顺序表的位置互换,即将(b1,b2,b3,...bm)放在(a1,a2,a3,...am)的前面。先将整个数组翻转,再讲前n个和后m个元素翻转。原创 2024-05-07 15:04:02 · 253 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-7
按顺序将两个顺序表表头较小的节点存入新的顺序表中,若一个表用完了,就把另一个表的剩下的部分加到新表中去。将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。使用了归并排序的思想。原创 2024-05-07 14:49:13 · 213 阅读 · 1 评论 -
数据结构-线性表-应用题-2.2-6
有序顺序表,值相同的元素一定在连续的位置上,初始时将第一个元素是为非重复的有序表,之后依次判断后面的元素是否与前面的非重复表的最后一个元素相同,若相同,向后移动,不用则插入前面的非重复有序表。从有序顺序表中删除所有其值重复的元素,使表中的元素的值均不同。原创 2024-05-07 14:37:53 · 224 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-5
从顺序表中删除其值在给定值s与t之间(包括s和t,且s原创 2024-05-07 10:51:45 · 186 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-4
这个区间的起始位置是 i,这是因为 i 是在 [s, t] 范围内找到的第一个元素的位置,即从这里开始的元素需要被删除或覆盖。通过设置新的顺序表长度为 i 的值(即移动完成后的最后一个元素的索引加一),我们有效地切除了数组尾部的多余部分,这部分现在包含了重复的、不再需要的数据。从有序顺序表中删除其值在给定值s与t之间(要求s原创 2024-05-07 10:41:08 · 456 阅读 · 1 评论 -
数据结构-线性表-应用题-2.2-3
对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。遍历顺序表,用k记录顺序表中不等于x的元素个数,同时扫描时将不等于x的元素移动到下标k的位置。原创 2024-05-07 10:18:51 · 235 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-2
设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)首位元素互换,i与n-i-1互换。原创 2024-05-06 20:31:09 · 108 阅读 · 0 评论 -
数据结构-线性表-应用题-2.2-1
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。原创 2024-05-06 20:21:01 · 109 阅读 · 0 评论