第三周总结
关于冒泡排序的应用
正确的:for(int i=0;i<m;i++)
{
cin>>pi[i]>>ai[i];
}
for(int i =0;i<m-1;i++)
{
for(int j=0;j<m-1-i;j++)
{
if(pi[j]>pi[j+1])
{
t=pi[j],pi[j]=pi[j+1],pi[j+1]=t;
t=ai[j],ai[j]=ai[j+1],ai[j+1]=t;
}
}
}
错误的:for(int i=0;i<m;i++)
{
cin>>pi[i]>>ai[i];
}
for(int i =0;i<m-1;i++)
{
for(int j=i;j<m-1;j++)
{
if(pi[j]>pi[j+1])
{
t=pi[j],pi[j]=pi[j+1],pi[j+1]=t;
t=ai[j],ai[j]=ai[j+1],ai[j+1]=t;
}
}
}
在命名数组是数组界限应该定义的比题目所表示的再宽一些,以防止数组越界导致结果爆炸
取余运算有一些好用的性质,包括:
(A+B) \mod b = (A \mod b + B \mod b) \mod b(A+B)modb=(Amodb+Bmodb)modb
(A×B) \mod b = ((A \mod b) × (B \mod b)) \mod b(A×B)modb=((Amodb)×(Bmodb))modb




浙公网安备 33010602011771号