找一组数字中最小与最大值时减少比较的次数
当用一般的方法很容易想到将数字中的每一个数字与当前的最大值与最小值做出比较,最后得出最大最小值,
这样每个元素都要与大小值比较两次,代价是一共比较四次。
事实上每个元素只要比较三次就可以,先把一组数字两两组织,先将两数字相互比较,其中大的与最大值相比
较,小的与最小值相比较。这样只要比较三次了。
实现时要知道数字的总个数,如果为奇数就拿出一个初始化最大值与最小值,其余的两两组织;如果为偶数就
拿出两个数来决定最大与最小值的初始值。
当用一般的方法很容易想到将数字中的每一个数字与当前的最大值与最小值做出比较,最后得出最大最小值,
这样每个元素都要与大小值比较两次,代价是一共比较四次。
事实上每个元素只要比较三次就可以,先把一组数字两两组织,先将两数字相互比较,其中大的与最大值相比
较,小的与最小值相比较。这样只要比较三次了。
实现时要知道数字的总个数,如果为奇数就拿出一个初始化最大值与最小值,其余的两两组织;如果为偶数就
拿出两个数来决定最大与最小值的初始值。