不是VIP会员,不能显示答案

题目解答

题目:
#include <iostream>

using namespace std;



const int N = 1000;

int c[N];



int logic(int x, int y) {

return (x & y) ^ ((x ^ y) | (~x & y));

}

void generate(int a, int b, int *c) {

for (int i = 0; i < b; i++) {

c[i] = logic(a, i) % (b + 1);

}

}

void recursion(int depth, int *arr, int size) {

if (depth <= 0 || size <= 1)return;

int pivot = arr[0];

int i = 0, j = size - 1;

while (i <= j) {

while (arr[i] < pivot)i++;

while (arr[j] > pivot)j--;

if (i <= j) {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

i++;j--;

}

}

recursion(depth - 1, arr, j + 1);

recursion(depth - 1, arr + i, size - i);

}



int main() {

int a, b, d;

cin >> a >> b >> d;

generate(a, b, c);

recursion(d, c, b);

for (int i = 0; i < b; i++)cout << c[i] << " ";

}


判断题

1) 当1000>=d>=b 时,输出的序列是有序的( )

2) 当输入“5 5 1”时,输出为“1 1 5 5 5”( )

3) 假设数组c 长度无限制,该程序所实现的算法的时间复杂度是O(b)的( )


选择题

4) 函数int logic(int x,int y)的功能是( )

5) (4 分)当输入为“10 100 100”时,输出的第100 个数是( )
考点:
分析:
解答:
评论:
老师: