1.冒泡排序 10个整数
void maopao(int *list)
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(list[j]<list[j+1])
{
temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}
}
}
2. 折半查找算法
递归法:
int bSearch(int array[],int dest,int low,int high)
{
int mid;
if(low>high)
return -1;
mid=(low+high)/2;
if(dest==array[mid])
return mid;
if(dest<array[mid])
return bSearch(array,dest,low,mid-1);
else
return bSearch(array,dest,mid+1,high);
}
非递归算法
int bSearch2(int array[],int dest,int n)
{
int low,high,mid;
low=0;
high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(dest==array[mid])
return mid;
else if(dest<array[mid])
high=mid-1;
else
low=mid+1;
}
}
3.递归算法求n!
long fact(int n)
{
if(n==0||n==1)
return 1;
else
return n*fact(n-1);
}
4.求n!末尾0的个数
int cal_zero(int n)
{
int count =0;
while (n/5>0)
{
count+=n/5;
n=n/5;
}
return count;
}