/***************************************************/
/* Description:线性表的查找_折半查找(C语言源代码)
/* Date:2021/9/1
/* Author:汝南城
/****************************************************/
#include <stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct {
int key;
char name[10];
}ElemType;
typedef struct {
ElemType* R;
int length;
}SSTable;
/*①初始化顺序表*/
int Init_Sqe(SSTable* ST)
{
ST->R = (ElemType*)malloc(sizeof(ElemType) * MAXSIZE);
if (!ST->R)
return 0;
else
{
ST->length = 0;
return 1;
}
}
/*②折半查找(非递归算法)*/
int Search_Bin(SSTable *ST, int key)
{
int low = 1;
int high = ST->length;
while (high>=low) /*循环结束条件:low>high*/
{
int mid = (high + low) / 2;
if (ST->R[mid].key == key)
return mid;
else if (ST->R[mid].key > key)
high = mid - 1;
else
low = mid + 1;
}
return 0;
}
/*③折半查找(递归算法)*/
int Search_Bin1(SSTable* ST, int key,int low,int
线性表的查找_折半查找(C语言源代码)
最新推荐文章于 2023-03-02 14:25:00 发布
本文详细介绍了如何使用C语言实现线性表的折半查找算法,包括算法原理和具体代码实现,适用于数据结构与算法学习者参考。
摘要由CSDN通过智能技术生成