分析下列排序算法中语句1和语句2的频度以及此算法的时间复杂度,并指出该算法是属于哪一种排序方法。
voidf33(inta[],intn)
{inti,j,k,t;
for(i—i0;i{j=i;
for(k=j+1;k<=n;k++)
if(a[k]t=a[i];a[i]=a[j];a[j]=t;
}
}
分析下列排序算法中语句1和语句2的频度以及此算法的时间复杂度,并指出该算法是属于哪一种排序方法。
voidf33(inta[],intn)
{inti,j,k,t;
for(i—i0;i{j=i;
for(k=j+1;k<=n;k++)
if(a[k]t=a[i];a[i]=a[j];a[j]=t;
}
}
【正确答案】:语句1频度是n 语句2频度n(n+1)/2 该算法为直接选择排序,其时间复杂度为O(n2)。 解析:根据算法,可判断出其为直接选择排序的算法,其时间复杂度为O(n2)。
Top