第三周总结

关于冒泡排序的应用
正确的: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

posted @ 2020-11-09 22:46  blue0116  阅读(54)  评论(0)    收藏  举报