数据结构(四)查找算法(c语言)

本文介绍了数据处理中的查找算法,包括静态查找的二分查找、顺序查找、插值查找和斐波那契查找,动态查找中的二叉树查找,以及哈希查找的概念和哈希函数。通过C语言实现展示了这些查找算法,同时探讨了哈希表的冲突解决方法和复杂度分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找是数据处理经常进行的操作。这里我介绍常见的几种,主要有静态查找,动态查找,哈希查找。

静态查找有:二分查找,顺序查找,插值查找 ,斐波那契查找。

动态查找:主要针对二叉树。

哈希查找 :主要理解哈希查找的思想 。

第一种:二分查找 。

在一个查找区,确定中心位置后,用待查找的值与中心值比较,前者大,就把查找区锁定到后半段,反之,锁定在前半段。这样的过程一直进行,知道查找区边界结束 。

有序顺序表的二分查找程序如下 :

//二分查找
#include<stdio.h>

int binsearch(int *ListSeq,int ListLength,int KeyData)
{
	int low = 0;
	int mid;
	int high = ListLength - 1;
	while(low <= high)
	{
		mid = (low + high)/2;
		if(KeyData < ListSeq[mid])
			high = mid -1;
		else if(KeyData > ListSeq[mid])
			low = mid + 1;
		else
			return mid;
	}
	return -1;
}
第二种:顺序查找

顺序查找:顾名思义就是,从第一个开始逐个把查找区的值与待查值比较,知道后边界结束。

程序如下:

//顺序查找
#include<stdio.h>

int FindSeq(int *ListSeq,int ListLength,int KeyData)
{
	int i;
	for(i = 0;i < ListLength,i++)
	{
		if(ListSeq[i] == KeyData)
			return i;
	}
	return 0;
}

int main()
{
	int a[5] = {34,35,26,89,56
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值