您的位置:首页 > 其它

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

2015-11-03 15:41 246 查看
二分查找程序算法

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: