/*分治思想的各种算法*/
#include <stdlib.h>
#include <stdio.h>
/*二分检索算法*/
int BinarySearch(int a[],int n,int e)
{
int index;
int low=0,high=n-1, mid;
while(low <= high)
{
mid = (low + high) / 2;
if(e == a[mid])return mid;
else if(e > a[mid])low = mid + 1;
else high = mid - 1;
}
if(low >= high)return -1;
}
/*归并排序算法*/
void MergeSort(int a[],int low,int high)
{
int mid;
int temp[100],i,j,k;
if(high == low)return;
/*先细分排序*/
mid = (low + high)/2;
MergeSort(a,low,mid);
MergeSort(a,mid+1,high);
/*再归并*/
i=low,j=mid+1,k=0;
while(i<=mid && j<=high)
{
if(a[i] < a[j])temp[k++] = a[i++];
else temp[k++] = a[j++];
}
for(;i<=mid;)temp[k++] = a[i++];
for(;j&l
分治思想的几个算法:二分检索、快排、归并排序
最新推荐文章于 2023-02-17 12:54:40 发布
本文介绍了分治思想在算法中的应用,具体包括二分检索算法、归并排序算法和快速排序算法的实现。通过示例代码详细展示了这三个算法的步骤,并提供了主函数进行测试,演示了如何使用这些排序算法和二分检索找到目标值的位置。
摘要由CSDN通过智能技术生成