寻找数组中的最大值和最小值
解法1:遍历两次,分别求出最大值、最小值。需要比较2*N次。
解法2:按顺序将数组中相邻的两个元素看成一组,遍历数组,调整每一组中两个元素的顺序,使大的数在偶数位上,小的数在奇数位上。然后分别从奇数位、偶数位上求出最大最小值,总的比较次数为1.5*N次。
解法3:不破坏原数组,仍然将数组每相邻两位看成一组,定义两个变量min、max,遍历数组,相邻两位比较,然后得到的大者与max比较,小者与min比较。总的比较次数仍为1.5*N。
解法4:采用分治算法,分别求出前后N/2个数的min和max,然后取较小的min及较大的max。但是总的比较次数仍为1.5*N。
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐