[说明]
本流程图采用“双向冒泡法”实现对数组a[n]的排序。双向冒泡法就是在逐步缩小的数组内,分别从数组的两端开始向内搜索,同时将大数往上浮,小数往下沉,每次交换一组数。flag是一个标志,发生过交换就置为1,当这个循环过程都不再发生交换时,则数组排序完成。
注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述;
定义SWAP[a,b]为将a和b两数交换。
[流程图]
[问题]
将流程图的(1)~(5)处补充完整。
(5)处填()
参考答案:a[Right-i]<a[Right-i-1]
解析:
[分析]: 本题目考查的是流程图。
首先题目中已经给出算法说明,是分别从数组的两端同时向内搜索,每次交换一组数,所以,可以判断,空(1)中的条件应该由两部分组成,首先是left<right,因为这样才能构成一个数组,第二个条件是flag==1,如果它成立,则说明还有交换,要继续排序,如果flag=0,则说明没有交换了,排序完成,所以空(1)要填入left<right && flag=1。内循环开始,从数组两端,两两比较数的大小,所以空(2)应填入left,right-1,1,在left端,当a[i]>a[i+1]时,将两数交换,交换后将flag置1,即空(3)填入a[i]>a[i+1],空(4)填入flag=1; 在right端,当a[Right-i]<a[Right-i-1]时,将两数交换,flag置1,所以空(5)应填入a[Right-i]<a[Right-i-1]。