精华内容
下载资源
问答
  • 数据结构折半查找

    2011-11-22 12:26:12
    数据结构折半查找,C语言版,自己写的代码,希望对朋友们有所帮助
  • c语言实现数据结构折半查找
  • 数据结构 折半查找

    2017-12-08 11:31:38
    #include using namespace std; #include//使用数据库srand和rand ...//假定带查找集合有10个元素 void Creat(int a[]); int BinSearch(int r[],int n,int k,int &count);//有序表r[],有序表的数据个数为n,设带
    #include<iostream>
    using namespace std;
    #include<stdlib.h>//使用数据库srand和rand 
    #include<time.h>//使用库数据time
    const int Max=10;//假定带查找集合有10个元素
    
    void Creat(int a[]);
    int BinSearch(int r[],int n,int k,int &count);//有序表r[],有序表的数据个数为n,设带查找元素为k,查询次数为count
    int main()
    {
    	int a[Max+1]={0};//假设
    	int location=0,count=0,k;
    	Creat(a);
    	for(int i=1;i<=Max;i++)
    	cout<<a[i]<<" ";
    	cout<<endl;
    	k=a[1+rand()%Max];//随机生成带查找元素的下标 
    	location=BinSearch(a,Max,k,count);
    	cout<<"元素"<<k<<"在序列中序号是"<<location;
    	 cout<<",共比较"<<count<<"次"<<endl;
    	 return 0; 
    	
    } 
    void Creat(int a[])//函数定义,随机生成待查找集合 
    {
    	srand(time(NULL));//初始化随机种子为当前系统随机时间 
    	
    	a[0]=0;
    	for(int i=1;i<=Max;i++)
    	a[i]=a[i-1]+rand()%Max;//生成一个递增序列
    	 
    }
    int BinSearch(int r[],int n,int k,int &count)//从数组下标1开始存放待查集合
    {
    int low=1;
    int high=n;//设置查找区间 
    int mid;
    while(low<=high)//当期间存在时
    {
    mid=(low+high)/2;
    count++;
    if(k<r[mid])
    high=mid-1;
    else if(k>r[mid]) 
    low=mid+1;
    else return mid;
    }
    return 0;
    }




    展开全文
  • 数据结构折半查找,用于C语言版的数据结构。
  • 数据结构折半查找.cpp

    2021-08-13 16:08:56
    数据结构(严蔚敏)折半查找
  • C++数据结构折半查找法二分查找法,算法设计新颖,有利于数据结构初学者的学习!
  • c 数据结构 折半查找

    2009-08-08 08:46:23
    一个用c语言实现的数据结构折半查找的算法。
  • 折半查找的实现 要求: 1.若查找成功,返回元素在有序数组中的位置和查找次数; 2.若查找失败,返回出错标志和查找次数。 //low应从0开始,因为设置的数组下标从0开始 //虽然mid不变,但是当key为首元素时,mid为1也...

    折半查找的实现

    要求:

    1.若查找成功,返回元素在有序数组中的位置和查找次数;

    2.若查找失败,返回出错标志和查找次数。

    //low应从0开始,因为设置的数组下标从0开始
    //虽然mid不变,但是当key为首元素时,mid为1也就是第二元素,导致找不到第一个元素。
    #include <iostream>
    using namespace std;
    typedef int Status;
    typedef int KeyType;
    typedef int InfoType;
    typedef struct {
    	KeyType key;
    	InfoType otherinfo;
    }ElemType;
    typedef struct {
    	ElemType* R;
    	int length;
    }SSTable;
    
    //对顺序表初始化
    Status InitSSTable(SSTable& ST)
    {
    	ST.R = new ElemType[100];
    	if (!ST.R) exit(OVERFLOW);
    	ST.length = 0;
    	return 1;
    }
    //顺序表的建立
    void CreateSSTable(SSTable& ST)
    {
    	int n;
    	cout << "请输入顺序表的元素个数:";
    	cin >> n;
    	cout << "请依次输入元素:";
    	for (int i = 0; i < n; i++)
    	{
    		cin >> ST.R[i].key;
    		ST.length++;
    	}
    }
    //顺序表的显示
    Status SSTableShow(SSTable ST)
    {
    	for (int i = 0; i < ST.length; i++)
    	{
    		cout << ST.R[i].key << " ";
    	}
    	cout << endl;
    	return 1;
    }
    //折半查找
    int count0;
    Status Search_Bin(SSTable ST, KeyType key)
    {
    	int low = 0;
    	int high = ST.length-1;
    	int mid = 0;
    	while (low<=high)
    	{
    		count0++;
    		mid = (low + high) / 2;
    		if (key == ST.R[mid].key)
    		{
    			return mid+1;
    		}
    		else if (key<ST.R[mid].key)
    		{
    			high = mid - 1;
    		}
    		else
    		{
    			low = mid + 1;
    		}
    	}
    	return -1;
    }
    
    
    int main()
    {
    	SSTable ST;
    	InitSSTable(ST);
    	CreateSSTable(ST);
    	SSTableShow(ST);
    	int key;
    	cout << "输入要查找的元素:";
    	cin >> key;
    	int address = Search_Bin(ST, key);
    	if (address == -1)
    	{
    		cout << "查找失败,查找次数为:"<<count0;
    	}
    	else
    	{
    		cout << "该元素在" <<address<<"号位置。"<<"比较"<<count0<<"次"<< endl;
    	}
    
    	return 0;
    }
    
    展开全文
  • 折半查找算法 顺序表 折半查找算法C语言版
  • 这是我在网上下载的。经过自己的修改得到的。希望对大家有帮助啊
  • //key:要查找的值 int BinarySearch(int *arr,int length,int key) { //前指针与后指针 int low=0 ,high=length; //中心指针,计算公式如下 int mid = (high+low)/2;//low + (high/low)/2 可以防止数据溢出 //前...
    //*arr:目标数组的指针
    //lenght:目标数组长度
    //key:要查找的值
    int BinarySearch(int *arr,int length,int key) {
    	//前指针与后指针
    	int low=0 ,high=length;
    	//中心指针,计算公式如下
    	int mid = (high+low)/2;//low + (high/low)/2 可以防止数据溢出
    	//前指针不大于后指针则一直循环
    	while (!(low>high))
    	{
    		if (arr[mid] == key) return mid;
    		if (arr[mid]<key) low = mid + 1;
    		else high = mid - 1;
    		mid = low + (high - low) / 2;
    	}
    	return -1;
    }
    

    时间复杂度:O(log2N)

    展开全文
  • 该程序已在VS2008下成功运行,其中有3个CPP文件,分别为对应的三个数据结构算法,若要运行其中某一个可把其他两个注释掉,直接运行既可。
  • 折半查找(C语言版的)从键盘输入上述8个整数5 ,14 ,18 ,21 ,23 ,29 ,31 ,35,存放在数组bub[8]中,并输出其值。 (2)从键盘输入21,查找是否存在该数据元素,若存在,则输出该数据元素在表中的位置,否则给出查找...
  • 算法思想: 首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则...
  • c++顺序查找 数据结构 折半查找 分块查找
  • 数据结构 折半查找 实例代码: /* 名称:折半查找 语言:数据结构C语言版 编译环境:VC++ 6.0 日期: 2014-3-26 */ #include #include #include <windows> #define N 11 // 数据元素个数 typedef int Key...
  • 数据结构折半查找

    万次阅读 2014-03-26 13:05:27
    数据结构 折半查找 /* 名称:折半查找 语言:数据结构C语言版 编译环境:VC++ 6.0 日期: 2014-3-26 */ #include #include #include #define N 11 // 数据元素个数 typedef int KeyType; // 设...
  • 关于数据结构折半查找的程序代码,包含实验要求,实验目的等的相关信息。
  • C语言 数据结构 作业 顺序查找 折半查找
  • 数据结构折半查找

    2019-08-09 21:41:03
    排序直接的数据结构介绍; 顺序查找和折半查找是顺序表存储;二叉排序树是二叉树存储;哈希查抄是类图(和图的邻接表存储相似); 头文件(Search.h); # ifndef _SORT_ typedef int KeyType; typedef ...
  • 数据结构 折半查找 可运行的程序 专供懒人,懒!请找我 不用学,呵呵
  • 1掌握排序算法及基本思想及实现的技术能够根据实际问题特点的要求选择合理的排序方法理解排序在数据处理中的重要性 学会比较各种排序方法的稳定性分析以及在最好 最坏和平均情况的时间性能分析 掌握顺序查找和折半...
  • 主要介绍了Java数据结构实现折半查找的算法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 折半查找数据结构

    2012-12-28 00:46:49
    折半查找,C++实现,数据结构上机题,希望对你有用
  • 数据结构】顺序查找和折半查找

    千次阅读 多人点赞 2021-04-03 08:07:36
    摘要:在本篇文章中,主要讲述了在数据结构中所涉及的几大查找算法,包括:顺序查找、折半查找、分块查找和散列表查找。这些查找方式都是数据结构中最基本的查找方式,并且在数据结构中运用广泛。在查找算法中,最为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,889
精华内容 8,355
关键字:

数据结构折半查找

数据结构 订阅