现要对n个实数(仅包含正实数和负实数)组成的数组A进行重新排列,使得其中所有的负

免费题库2022-08-02  23

问题 现要对n个实数(仅包含正实数和负实数)组成的数组A进行重新排列,使得其中所有的负实数都位于正实数之前。求解该问题的算法的伪代码如下所示,则该算法的时间和空间更杂度分别为(  )。i=0;j=n-1;while i<j dowhile A<0 doi=i+1;while A[j]>0 doj=j-1;if i<j do交换A和A[j];问题1选项

选项

答案 C

解析 根据程序不难看出,要将负实数位于正实数之前,其实就是对所有元素进行了一次遍历,正实数和负实数互换位置即可,因此其时间复杂度为O(n),由于元素A和A[j]互换时,需要一个临时存储空间来存放元素,因此其空间复杂度为O(1)。
转载请注明原文地址:https://tihaiku.com/congyezige/2410307.html

最新回复(0)