以下程序是折半插入排序的算法 设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。 void binsort (NODE a[ ],int n) { int x,i,j,s,k,m; for (i=2;i<=__(1)____ ;i++) { a[0]=a[i]; x= a[i].key; s=1; j=i-1; while (s<=j) { m=__(2)___; if( x __(3)___; else __(4)___; } for ( k=i-1;k>=j+1;k- -) __(5)___=a[k]; a[j+1]=a[0]; } } 【答案选项】 A. (s+j)/2 B. j=m-1 C. a[k+1] D. n E. s=m+1
|