Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
12个月前关闭。
请参见下面的代码。该代码按n *(n + 1)/ 2个迭代对数组进行排序。我从Wikipedia 1 + 2 + 3 + 4 +...中选取了公式。无需证明它,让我们假设它是可行的。
This code at OnlineGDB
我的问题是,“ n *(n + 1)/ 2”小于“ n * n”是否总是正确?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
12个月前关闭。
请参见下面的代码。该代码按n *(n + 1)/ 2个迭代对数组进行排序。我从Wikipedia 1 + 2 + 3 + 4 +...中选取了公式。无需证明它,让我们假设它是可行的。
#include <stdio.h>
int A[] = {3,1,4,8,6,17};
int nruns = 0;
#define N sizeof(A) / sizeof(int)
int imin(int idx){
int im = idx;
for(int i = idx; i < N; ++i, ++nruns)
if(A[i] < A[im])im = i;
return im;
}
int swap(li, ri){
int t = A[li];
A[li] = A[ri];
A[ri] = t;
return 0;
}
int main()
{
int im;
for(int i = 0; i < N; ++i){
im = imin(i);
swap(i, im);
}
for(int i = 0; i < N; ++i)
printf("%d ", A[i]);
printf("\nN = %d\nN*N = %d\nnruns = %d\n", N, N*N, nruns);
/*
(n*n + n) / 2 < n*n
Is above always true ?
*/
return 0;
}
This code at OnlineGDB
我的问题是,“ n *(n + 1)/ 2”小于“ n * n”是否总是正确?
最佳答案
假设n > 0
。然后,如果n * (n + 1) / 2 < n * n
为true,则(n + 1) / 2 < n
也为true,因此n + 1 < 2 * n
也是如此。如果为n > 1
,则为(n > 0) AND (n > 1)
。
假设n > 1
。然后,如果n < 0
为true,则n * (n + 1) / 2 < n * n
也为true,因此(n + 1) / 2 > n
也是如此。如果为n + 1 > 2 * n
,则为n < 1
。
这意味着如果(n < 0) AND (n < 1)
,则为true。
关于c - 数学。排序。 “n *(n +1)/2”是否总是小于“n * n”? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54852265/
10-10 17:39