设计一个尽可能高效的算法在长度为n的一维实型数组a0n-1中查找值最大的元素max和值最小的元素min并分析算法的最好、最坏和平均时间复杂度。
算法:
- 初始化max为数组的第一个元素a[0],min为数组的第一个元素a[0]。
- 遍历数组,从第二个元素开始,将当前元素与max和min进行比较:
- 如果当前元素大于max,则更新max为当前元素;
- 如果当前元素小于min,则更新min为当前元素。
- 遍历结束后,返回max和min。
最好情况时间复杂度:O(n) 在最好情况下,数组中的元素按照从小到大或从大到小的顺序排列,此时只需要遍历一次数组即可找到最大和最小元素。
最坏情况时间复杂度:O(n) 在最坏情况下,数组中的元素无序,需要遍历整个数组。
平均时间复杂度:O(n) 平均情况下,需要遍历整个数组。
原文地址: https://www.cveoy.top/t/topic/i7dM 著作权归作者所有。请勿转载和采集!