设计一个程序,输出在顺序表中采用折半找法查找关键字的过程

原创 2013年12月05日 20:15:32
#include"iostream"
#include"algorithm"
using namespace std;
class list{
private:
	int data[20];
	int length;
public:
	list()
	{
		cout << "元素个数为:" << endl ;
		cin >> length ;
		cout << "请输入顺序表元素" << endl ;
		for(int i=0;i<length;i++)
			cin >> data[i];
	}
	void listsort()
	{
		sort(data,data+length);
		for(int i=0;i<length;i++)
			cout << data[i] << "  ";
		cout << endl ;
	}
	void binsearch(int key,int a)
	{
		int half;
		half=a/2;
		if(data[half]==key&&half!=0)
			cout << "关键字的编号为: " << half+1 << endl ;
		else if(data[half]>key&&key>data[0])
		{
			cout << "顺序表的中值比关键字大,继续在0—" << half << "中查找" << endl ;
			binsearch(key,half);
		}
		else if(data[half]<key&&key<data[length-1])
		{
			cout << "顺序表的中值比关键字小,继续在" << half << "-" << length << "中查找" << endl ;
			binsearch(key,half+length);
		}
		else
			cout << "关键字不存在" << endl ;
	}
	int getlength()
	{
		return length;
	}
};

void main()
{
	int key;
	list a;
	a.listsort();
	cout << "请输入关键字" << endl ;
	cin >> key ;
	a.binsearch(key,a.getlength());

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

设计一个程序,输出在顺序表中采用折半找法查找关键字的过程

#include"iostream" #include"algorithm" using namespace std; class list{ private: int data[20]; int...
  • u012651730
  • u012651730
  • 2013年12月05日 20:15
  • 1276

查找

既然是查找 时间复杂度肯定不可能大于N吧 什么是ASL?平均查找长度。 ASL =∑PiCi (Pi 为查找第i个记录的概率,Ci为找到第i个记录数据需要比较的次数,Ci随查找过程的不同而不同。)...
  • weixin_38070406
  • weixin_38070406
  • 2017年08月09日 19:43
  • 263

第14周项目2 二叉排序树中查找的路径

问题: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:123.cpp * 作 者:王靖...
  • sdwangjingqi
  • sdwangjingqi
  • 2016年12月08日 10:41
  • 138

实现折半查找的算法(数据结构)

输出顺序表(1,2,3,4,5,6,7,8,9,10)中采用折半查找的方法查找关键字9的过程#include #define MAXL 100 //定义表中最多...
  • GJG666
  • GJG666
  • 2017年12月07日 14:25
  • 235

算法初探——查找算法(顺序,折半)

查找排序是比较常用的算法,查找的方法很多这里先介绍两个最简单的查找方法,顺序表查找和折半查找。顺序查找(Sequential Search)又名线性查找,是最基本的查找技术,它的查找方式为:从表中第一...
  • Avalon_Y
  • Avalon_Y
  • 2016年03月12日 10:24
  • 534

909422229__三种查找算法:顺序查找,二分法查找(折半查找),分块查找

三种查找算法:顺序查找,二分法查找(折半查找),分块查找 一、顺序查找的基本思想: 从表的一端开始,顺序扫描表,依次将扫描到的结点关键字和给定值(假定为a)相比较,若当前结点关...
  • a909422229
  • a909422229
  • 2016年08月25日 19:35
  • 2752

静态表查找--顺序表的查找(有序)--折半查找

静态查找表在查找的过程中不改变表的状态---不插入也不删除,适合不变动或者不经常变动的查找,顺序表可以使有序的也可以是无序的,如果是有序的可以使用折半查找,每查找一次,就把范围缩小一半,如果是无序的就...
  • u011456016
  • u011456016
  • 2015年12月09日 16:04
  • 2515

【查找算法】——顺序查找、折半查找、分块查找(索引查找)

查找算法 概述: 查找算法:就是在是数据元素集合中查看是否存在于指定的关键字相等的元素。 查找分为两种:静态查找和动态查找。 1) 静态查找:是指在数据元素集合中查找与给定的关键字相等的元素...
  • hbtj_1216
  • hbtj_1216
  • 2015年12月11日 19:49
  • 3305

C语言-二分查找(折半查找)算法

1.折半查找算法 原理:取中间元素与查找元素进行比较,如果查找元素比中间元素大,则在中间元素右边查找,如果查找元素比中间元素小,则在中间元素的左边查找。 代码例子: #include /** * ...
  • XieEXiaoZhang
  • XieEXiaoZhang
  • 2016年04月03日 21:42
  • 14034

【C/C++】折半查找(二分查找)

一、二分查找 在C和C++里,二分查找是针对有序数组所用的一种快速查找元素的方法。 二、二分查找的条件以及优缺点 条件:针对有序数组(元素从小到大或从大到小) 优点:查询速度较快,时间复杂度为O(n)...
  • qq_31828515
  • qq_31828515
  • 2016年06月30日 17:34
  • 14668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计一个程序,输出在顺序表中采用折半找法查找关键字的过程
举报原因:
原因补充:

(最多只允许输入30个字)