二分查找程序算法和快速排序

来源:互联网 发布:ug三维制图软件 编辑:程序博客网 时间:2024/04/28 12:14

二分查找程序算法

int search(int *a, int x,int n){    int left =0;    int right =n-1;    while(left<=right)    {//返回查找x的位置        int middle =(left + right )/2;        if(x==a[middle]) return middle;        if(x>a[middle])  left =middle+1;        else            right =middle-1;    }    return -1;}

快速排序

void Qsort(int a[], int low, int high){    if(low >= high)    {        return;    }    int first = low;    int last = high;    int key = a[first];/*用字表的第一个记录作为枢轴*/    while(first < last)    {        while(first < last && a[last] >= key)        {            --last;        }        a[first] = a[last];/*将比第一个小的移到低端*/        while(first < last && a[first] <= key)        {            ++first;        }        a[last] = a[first];    /*将比第一个大的移到高端*/    }    a[first] = key;/*枢轴记录到位*/    Qsort(a, low, first-1);    Qsort(a, first+1, high);}

这里写图片描述

0 0
原创粉丝点击