问答题
写一算法找出n个数的最大值和最小值,要求其最坏条件下的元素比较次数为[3n/2]-2。【西安电子科技大学2003五(10分)】
【正确答案】正确答案:设n个元素存于向量中,元素两两比较,每次比较的大者置于向量的后端,小者置于向量的前端,一趟比较后将元素分成大者端和小者端,比较次数[n/2]。接着对大者端和小者端分别进行简单选择排序,选出最大元素和最小元素,各制[n/2]一1次比较,总共比较次数不超过 [3n/2]一2。分成大者端和小者端的核心语句是: for(i=0,j=n-1一i;ir[j].key)r[i]<一一>r[j];
【答案解析】