排序算法

来源:互联网 发布:高级软件项目经理证书 编辑:程序博客网 时间:2024/06/17 12:43

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;}