常用算法

二分查找

int  binary_search(int a[],int len,int goal)
{
    int beg = 0;
    int end = len - 1;
    while(beg <= end)
    {
        int middle = (end + beg + 1)/2;
        if(a[middle] == goal)
            return middle;
        if(a[middle] > goal)
            end = middle - 1;
        else
            beg = middle + 1;
    }
    return -1;
}

快速排序 

void quick_sort(int a[],int l,int h)
{
    if(l < h)
    {
        int key = a[l];
        int low = l;
        int high = h;
        while(low < high)
        {
            while(low < high && a[high] > key) //把比key小的放到低端
            {
                high--;
            }
            a[low] = a[high];
            while(low < high && a[low] < key) //把比key大的放到高端
            {
                low++;
            }
            a[high] = a[low];
        }
        a[low] = key; //key放到中间 
        quick_sort(a,l,low-1);
        quick_sort(a,low+1,h);
    }
}

 

posted on 2014-10-26 18:02  kangbry  阅读(225)  评论(0编辑  收藏  举报

导航