30/09/2018, 17:22

Nhờ tối ưu hóa đoạn mã nguồn và giải thích ý nghĩa tích cực của đoạn mã chuyển

Bài 1: Tối ưu hóa đoạn mã nguồn sau, giải thích ý nghĩa tích cực của đoạn mã chuyển.

a)

for (i = 1; i < n; i++)
{
    k = i * 4 + m;
    c = 2 * a[k];
}

b)

for (i = 0; i < n; i++)
{
    if (y < x) a[i]++;
    else a[i]--;
}

c)

for (i = 0; i < n; i++) {
    if (y < x) a[i]++;
    else a[i]--;
}

d)

for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
        if (j < i) a[i][j]++;
        else a[i][j]--;

e )

for (y = 0; y < n; y++)
    for (x = 0; x < m; x++)
        arr[x][y] = arr[x][y] + 1;
    
sum = 0;
i = 1;
while (i <= count) {
    sum += i;
    i++;
}
Chung Ryu viết 19:24 ngày 30/09/2018

ac nào giúp em với

Nguyễn Phú viết 19:28 ngày 30/09/2018

Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?

Trinh Van Ngoc viết 19:27 ngày 30/09/2018

Câu b và c giống nhau. Theo mình tối ưu 2 câu đầu như sau:

a)

for (i = 1; i < n; i++)

{

k = i * 4 + m;

c = 2 * a[k];

}

Tối ưu thành:
i = 1;
if (n > 1) {
	k = (n-1) * 4 + m;

	c = 2 * a[k];
	i = n;
}
b)

for (i = 0; i < n; i++)

{

if (y < x) a[i]++;

else a[i]--;

}

Tối ưu thành:

if (y < x) {
	for (i = 0; i < n; i++)
		a[i]++;
	{
} else {
	for (i = 0; i < n; i++)
		a[i]--;
	{
}
minh tran viết 19:25 ngày 30/09/2018

search loop unrolling nhé

Bài liên quan
0