中易网

怎样程序编写把两个集合中的元素按照非递减序列并成一个集合

答案:1  悬赏:80  
解决时间 2021-01-04 03:52
利用数据结构中所学的线性表编写
最佳答案
这个问题怎么跑ASP团队来了呢,难道要用ASP写吗?呵呵,既然来了,我给你一段代码吧(算法).效率比较好的做法是先将两个集合排成非递减序列

后,在合并。这里的排序算法采用快速排序。

dim arr1(n)'集合A
dim arr2(m)’集合B
dim arr3(m+n)'合并后的集合C
dim idxarr1
dim idxarr2
dim idxarr3
idxarr1=1
idxarr2=1
idxarr3=1
'调用快速排序
call QuickSort(arr1,1,n)
call QuickSort(arr2,1,m)
'合并A和B
while (idxarr1<=n and idxarr2<=m)
'同时遍例arr1和arr2,按非递减序存入arr3中
if arr1(idxarr1)<=arr2(idxarr2) then
arr3(i++)=arr1(idxarr1++)
else
arr3(i++)=arr2(idxarr2++)
end if
Loop

while(idxarr1<n)
arr3(i++)=arr1(idxarr1++)
loop

while(idxarr2<m)
arr3(i++)=arr2(idxarr2++)
loop

sub QuickSort(arr,low,high)
if(low<high)
mid=Part(arr,low,high) '分割成2个序列(划分)
QuickSort(arr,low,mid-1)
QuickSort(arr,mid+1,high)
end if
end sub
function Part(arr,low ,high)
t=arr(low)
while(low<high)
while(low<high and arr(high)>=t)
high--
arr(low)=arr(high)
while(low<high and arr(low)<=t)
low++
arr(high)=arr(low)
loop
arr(low)=t
Part=low
end function
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
旅行者号所携带的东西
向阳花托管(青岛胶州市)地址有知道的么?有点
连子和天麻可以一起炖鸡吗
使署的意思是什么?使署的释义是什么啊?
唢呐塑料哨片制作方法
大西北的意思是什么啊?请解释下!
含水草花的岫玉值钱吗?
为什么我在Excel想打印一页打印预览里却显示3
华为手机屏幕上图标如何收在一起
盜掠的意思是什么?盜掠的释义是什么啊?
什么是Q3网游
爱情中,1+1+1是什么意思 ?
零上5℃和零下7℃是两种相反意义的量吗
谢娜听他不懂为什么哭
溟邈的意思是什么啊?请解释下!
推荐资讯
形容自立的四字词语
乌拉特中旗公安局海镇派出所办公地址在什么地
霧鬣的意思是什么?霧鬣的释义是什么啊?
人间正道是沧桑,活得不要太嚣张什么意思
开锁配匙(虹桥镇环镇南路24号开锁配匙)地址在
为什么惠益商盟现在怎么火?
涡轮蜗杆的作用是什么??
他喝了一袋牛奶,吃了二只包子上学去了。(缩
求山间小记 阅读答案 5分钟内
七雄争霸2弓2器1步好吗?顺序怎样安排
电梯变频器故障
语气词“啊、哇、哪、呀”写作时可以任意选用
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?