从数组的两端向中间比较,设置两个变量i和j,初始时i=0,j=n-1,若A[i]为偶数并且A[j]为奇数,则将A[i]与A[j]交换。具体算法如下:
分析算法,两层循环将数组扫描一遍,所以,时间复杂度为O(n)。
(简答题)
已知数组A[n]中的元素为整型,设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为O(n)。
正确答案
答案解析
略
相似试题
(简答题)
已知单链表中各结点的元素值为整型且递增有序,设计算法删除链表中所有大于mink且小于maxk的所有元素,并释放被删结点的存储空间。
(单选题)
数组A[1‥40,1‥30]采用三元组表示,设数组元素与下标均为整型,则在非零元素个数小于()时,才能节省存储空间。
(简答题)
设计一个时间复杂度为O(n)的算法,实现将数组A[n]中所有元素循环右移k个位置。
(单选题)
说明一个长度为10的数组,元素类型为整型指针的正确语句是()
(简答题)
已知一棵具有n个结点的完全二叉树被顺序存储于一维数组的A[1]~A[n]元素中,试编写一个算法打印出编号为i的结点的双亲和所有孩子。
(单选题)
已知整型数组a(12),若要在过程调用后返回其元素最大值的下标,下面的过程定义语句合法的是()
(简答题)
给定含有m+n个元素的整型数组A(其中m>0,n>0),它分为两个互不重叠的,长度分别为m和n的子数组段,写出交换这两个子数组段的程序,要求不引入数组A以外的数组,但可引入若干中间变量。
(简答题)
线性表存放在整型数组A[arrsize]的前elenum个单元中,且递增有序。编写算法,将元素x插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。
(简答题)
已知两个n×n的对称矩阵按压缩存储方法存储在已维数组A和B中,编写算法计算对称矩阵的乘积。