求讲解这一段代码 尤其是if(strcmp(name[k],name[j])>0) k=j; if(k!=i)

2025-01-01 07:46:41
推荐回答(1个)
回答1:

这是选择排序算法吧
外层循环从数组开始位置进行循环
内层循环从当前外层循环的循环开始位置的下一个位置开始for(j=i+1;j内层循环每次选出一个当前最大的值 if(strcmp(name[k],name[j])>0)
并且记录下它的下标(位置)k=j
然后将这个当前最大的值放在本次循环最开始的位置if(k!=i)
是通过交换元素实现的temp=name[i];name[i]=name[k];name[k]=temp