12.10 找最二大值的标准算法

发布于 2024-12-10  83 次阅读


int find(int* in, int n) {
	int max = 0;
	int sec = -1;//初始化时sec理应小于max,max理应小于in[i]
        //因为这并不是排序,如果max=in[0],若in[0]就是最大值,就没有sec什么事情了
	for (int i = 0; i < n; i++) {
		if (in[i] > max) {
			sec = max;
			max = in[i];
		}
		else if (in[i] > sec && in[i] != max) {
			sec = in[i];
		}
	}
	return sec;
}

我们只需要考虑in[i]大于sec以后的事情(in[i]==max也没什么用)

使用if-else语句,记得先从范围更大的开始if

//我的方法都太粗暴了,上不了台面😂

届ける言葉を今は育ててる
最后更新于 2024-12-10