2、尽可能控制程序的漏洞,特别是没有严重的漏洞。
3、界面友好、移植方便,便以 *** 作、升级和管理;
4、尽可能占用少的系统资源;
5、不与其它程序相冲突;
时空交换,他比你要少用一些存储,但多一些步骤。你们老师写的也不怎么样。n个数中移动m个的,应该只需要n+m个空间移动n+m次或0空间交换n次。他写成了n*m次移动,你用了2n的空间。
如果你有13个空间,可以直接向后移动三个元素再重新插入。
次数等于n+m次。
#define N 10
#define M 3
for (int i = 0i <N - M++i)
a[N + M - 1 + i] = a[N - 1 - i]
for (int i = 0i <M++i)
a[M - 1 - i] = a[N + M - 1 + i]
如果没有空间,哪也是整体交换,只交换3+3+4次,相当于int(n / m) * m + int(m / (n mod m))*(n mod m)次等于n次。把q位上的n个数移动到p位上。
void swapall(int a[], int p, int q, int n)
{
for (int i = 0i <ni ++) {
int x = a[q + i]
a[q + i] = a[p + i]
a[p + i] = a[q + i]
}
}
/* p <q, n >1 */
void move(int a[], int p, int q, int n) {
while ( p + n <q) {
swapall(a, p, q, n)
p = p + n
}
while ( q - p <n) {
int m = q - p
swapall (a, p, q, m)
n = n - m
p = q
q = p + m
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)