<p style="">以下程序是折半插入排序的算法<p style=""> 设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。<p style="">void binsort (NODE a[ ],int n)<p style="">{ int x,i,j,s,k,m;<p style="">for (i=2;i<=[[4]];i++)<p style="">{ a[0]=a[i];<p style="">x= a[i].key;<p style="">s=1;<p style="">j=i-1;<p style="">while (s<=j)<p style="">{ m=[[1]]<p style="">if( x<a[m].key)<p style=""> [[2]]<p style="">else<p style=""> [[5]]<p style="">}<p style="">for ( k=i-1;k>=j+1;k- -)<p style=""> [[3]]=a[k];<p style="">a[j+1]=a[0];<p style="">}<p style="">}
4(matching)
.n
出自:2024年国家开放大学答案