首页 > 试题广场 >

若有以下程序段,则该程序段的功能是?

[单选题]

若有以下程序段:

……

int a[]={4,0,2,3,1},i,j,t;

for(i=1;i<5;i++)

{

t=a[i];

j=i-1;

while(j>=0&&t>a[j])

{

a[j+1]=a[j];

--j;

}

a[j+1]=t;

}

……

则该程序段的功能是:      

  • 对数组a进行插入排序(升序)
  • 对数组a进行插入排序(降序)
  • 对数组a进行选择排序(升序)
  • 对数组a进行选择排序(降序)
这个题很明显可以看出是插入排序,因为是通过元素后移的方式,空出位置进行插入。
而至于降序,可以看到:t = a[i],j = i - 1,while( j >= 0 && t > a[j]),也就是: a[i] > a[i - 1]的时候,进入循环体:a[j + 1] = a[j],即让
a[i] = a[i - 1],也就是让后面的数变成前面的数,而后面的数原本是较大的,因此是降序的
发表于 2020-08-30 17:00:36 回复(1)