【发布时间】:2015-03-03 18:08:42
【问题描述】:
我有一个函数,它接受一个由 N 个正整数组成的一维数组并返回大于下一个的元素的数量。问题是存在一个功能可以在更好的时间做到这一点吗?我的代码如下:
int count(int *p, int n) {
int i, j;
int countNo = 0;
int flag = 0;
for(i = 0; i < n; i++) {
flag = 1;
for(j = i + 1; j < n; j++) {
if(p[i] <= p[j]) {
flag = 0;
break;
}
}
if(flag) {
countNo++;
}
}
return countNo;
}
我的解决方案是O(n^2)。能不能做得更好?
【问题讨论】: