查找数组最大最小值
设计一个最优算法来查找一个n个元素数组中的最大值和最小值。一直一种需要比较2n次的方法,请给出一个更优的算法。请特别注意优化时间复杂度的常数。
void fun(int a[], int n) { if (a == NULL) { return; } int max = a[0]; int min = a[0]; int len = (n&1)? n : n-1; int tempMax, tempMin; for(int i = 1; i < len; i += 2) { if (a[i] > a[i+1]) { tempMax = a[i]; tempMin = a[i+1]; } else { tempMax = a[i+1]; tempMin = a[i]; } if (tempMax > max) { max = tempMax; } if (tempMin < min) { min = tempMin; } } if (n != len) { if (a[n-1] > max) { max = a[n-1]; } if (a[n-1] < min) { min = a[n-1]; } } cout << "Min num is " << min << endl; cout << "Max num is " << max << endl; }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 写一个函数找出一个整数数组中,第二大的数