在继ACM之后,为了推免复试,再次翻开算法书,这次想有一些记录,方便日后查看。所以可能比较琐碎。
第一天复习了一下基本的排序问题:
1.冒泡排序
for(i=1;i<=n-1;i++)
for(j=i;j<=n-i;j++)
if(a[j]>a[j+1])
{
t=a[j];a[i]=a[j+1];a[j+1]=t;
}
2.快速排序
void quicksort(int left,int right)
{
int i,j,t,temp;
if(left>right)
return ;
temp=a[left];
i=left;j=right;
while(i!=j)
{
while(a[j]>=temp && i<j)
j--;
while(a[i]<=temp && i<j)
i++;
if(i<j)
{
t=a[left];a[left]=temp;temp=t;
}
}
//归准基准数
a[left]=a[i];
a[i]=temp;
quicksort(left,i-1);
quicksort(i+1,right);
}
3.桶排序