for(i=n;i>1;i--) //注意i>1,因为n-1个都沉下去,自然第一个在顶
{ //将最值下沉
for(j=0;j<i-1;j++) //注意j<i-1,因为后面i个已排好序
{
if(num[j]>num[j+1]) //若升序则改为'<'
{
temp=num[j]; //相邻比较并交换
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
解读:两层循环,内层循环每次将最值下沉到底,或上浮到顶
平均时间复杂度:O(n^2)