【参考答案】
void BubbleSort(double a rr[], int n) { int i,j ;int e xchange = 1 ;// 交换标志for(i=1;i<n;i++){ // 最多做n-1趟排序exchange=0 ;// 本趟排序开始前,交换标志应为假for(j=n-1;j>=i ;j--) //对当前无序区R[i..n]自下向上扫描if(arr[j+1] > arr [ j]){// 交换记录arr[0]=arr[j+1];//R[0]不是哨兵,仅做暂存单元arr[j+1]=arr[j];arr[j]=arr[0];exchange=1 ;// 发生了交换,故将交换标志置为真} if(!exchange) // 本趟排序未发生交换,提前终止算法return ;} //endfor(外循环) }



