当前位置: 首页 > 编程日记 > 正文

数据结构(1)有序表查找

有序表查找

	/*  主函数  */public class OrderTableSearch {public static void main(String[] args) {int [] a= {0,1,16,24,35,47,59,62,73,88,99};	System.out.println(FibonacciSearch(a, 10, 88));System.out.println(InsertKeySearch(a, 10, 88));System.out.println(BinarySearch(a, 10, 88));}

一、折半查找

		/* 折半查找  *//* 输出:9 */static int BinarySearch(int [] a, int n, int key){int low, high, mid;low = 0;high = n;while(low <= high){mid = (low + high) / 2; /* 折半  */if (key < a[mid]){high = mid - 1;}else if (key > a[mid]){low = mid + 1;}else return mid;}return 0;}

二、插值查找

		/* 插值排序 *//* 输出:9 */static int InsertKeySearch(int [] a, int n, int key){int low, high, mid;low = 0;high = n;while(low <= high){/* 插值查找的计算公式 */mid = low + (high - low)*(key - a[low])/(a[high] - a[low]);if (key < a[mid]){high = mid - 1;}else if (key > a[mid]){low = mid + 1;}else return mid;}return 0;}

三、斐波那契查找

		/* 斐波那契排序 *//* 输出:9 */static int FibonacciSearch(int [] a, int n, int key){int [] F = {0,1,1,2,3,5,8,13,21,34};int low, high, mid, i, k;low = 1;high = n;k = 0;while (n > F[k]-1) /* 计算n位于斐波那契数列的位置 */k++;while (low <= high) {mid = low + F[k-1] -1;if (key < a[mid]){high = mid - 1;k = k - 1;}else if (key > a[mid]){low = mid + 1;k = k - 2;}else {if (mid <= n)return mid;elsereturn n;}}return 0;}

四、三种查找方法的比较

平均性能:斐波那契>折半>插值,因为折半查找是加法与除法的运算,插值为四则运算,斐波那契加减运算。

转载于:https://www.cnblogs.com/danbing/p/5128089.html

相关文章:

Java实现MD5(32/16位大小写)加密

MD5简单介绍 大家都知道&#xff0c;地球上任何人都有自己独一无二的指纹&#xff0c;这常常成为公安机关鉴别罪犯身份最值得信赖的方法&#xff1b;与之类似&#xff0c;MD5就可以为任何文件&#xff08;不管其大小、格式、数量&#xff09;产生一个同样独一无二的“数字指纹”…

OD使用教程6 - 调试篇06|解密系列

OD使用教程6 - 调试篇06 让编程改变世界 Change the world by program 这一讲开始&#xff0c;小甲鱼带大家接触真正程序的逆向。其实也没啥大不了的&#xff0c;也就是对之前所学的知识进行巩固和加强。 不过&#xff0c;在每一节课中&#xff0c;小甲鱼都会教给大家不同的新…

宝塔面板 mysql装不上_宝塔面板强制安装mysql8.0

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;mysql终于更新到8.0&#xff0c;mysql8.0对比以往的版本有了很大的提升&#xff0c;但是要求的服务器配置也就变得越来越高。对于低配置服务器&#xff0c;在宝塔面板进行安装时&#xff0c;总会出现“至少需要2个…

android studio 怎么运行java

方法/步骤 1、新建一个project&#xff0c;或者如果已经有project的话&#xff0c;那就直接新建一个module.注意选择Java library&#xff0c;然后下一步 2、输入module的一些信息。点击finish 3、在左侧找到build.gradle&#xff0c;双击打开&#xff0c;参照图中修改一下配置…

运行PHP出现No input file specified错误解决办法

配置了一台新服务器&#xff0c;使用的是IIS Fastcgi PHP 5.3.X&#xff0c;访问php页面的时候就会报错“No input file specified” 在php.ini文件里面修改&#xff1a; 1、增加一行&#xff08;这个最重要&#xff09; fastcgi.impersonate 1 2、修改两项&#xff08;解开…

Microsoft Security Essentials 4.1.522.0 RTM

简单说一下新版本的新功能&#xff0c;其中最强的是云端修复系统受损或病毒感染文件功能、重新编写的网络检查系统防御病毒入侵、新增自我保护&#xff0c;后台监控主进程无法用任务管理器结束。 Microsoft Security Essentials 是 Microsoft 提供的免费杀毒下载软件&#xff0…

wincc vbs mysql_Wincc VBS操作txt及SQL2005

系统:Win7 32Bits 旗舰版wincc: 7.0 sp3英文版Dim strConnectionStringDim objConnectionDim objCommandDim strSQLDim RsDim sdayDim smonthDim edayDim emonthDim str1Dim str2Dim tempDim sqlwhereDim msgDim CDG, WSH, FilePathDim fso, fo, slDim read_tempDim OrderFileN…

[Python]网络打解包

Python与C、C交互的时候&#xff0c;如果进行网络消息的收发&#xff0c;需要讲数据打包解包为字节流。 这时候就会用到Struct模块中的pack、unpack函数 打包&#xff1a; PKG # ! means network byte#PkgHeadPKG pack(!i, 0x54434d) #intPKG pack(!H, 4) #us…

TiKV 成功晋级 CNCF 孵化项目

今天&#xff0c;CNCF&#xff08;Cloud Native Computing Foundation&#xff0c;云原生计算基金会&#xff09;技术监督委员会&#xff08;TOC&#xff09;宣布已经投票决议通过&#xff0c;正式将 TiKV 从沙箱项目晋级至孵化项目。 TiKV 是一个开源的分布式事务 Key-Value 数…

平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读

交叉熵(Cross Entropy)是Shannon(香浓)信息论中的一个概念&#xff0c;在深度学习领域中解决分类问题时常用它作为损失函数。原理部分&#xff1a;要想搞懂交叉熵需要先清楚一些概念&#xff0c;顺序如下&#xff1a;1.自信息量—>2.信息熵(熵)—>3.相对熵(KL散度)—>…

在 Ubuntu 配置 PPTP Server

本文在 Ubuntu 12.4 或 14 亲测有效。 建立 PPTP 服务器 首先安装 pptp 服务器。 # apt-get install pptpd 然后配置 pptpd。 # sudo vi /etc/pptpd.conf 在 pptpd.conf 文件末尾添加服务器 IP 和客户端 IP。 localip 192.168.3.1 remoteip 192.168.3.100-200 以上配置意味着服…

IAP超级详解,偷懒了,不用自己去翻译了

转载自&#xff1a;http://gaohaijun.blog.163.com/blog/static/176698271201143194018328/ 一、In App Purchase概览 Store Kit代表App和App Store之间进行通信。程序将从App Store接收那些你想要提供的产品的信息&#xff0c;并将它们显示出来供用户购买。 当用户需要购买某件…

linux负载均衡(什么是负载均衡)

linux负载均衡&#xff08;什么是负载均衡&#xff09; 一、总结 一句话总结&#xff1a; 建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 关键点一&#xff1a…

win8数据源设置mysql_Win8系统ODBC数据源有何重要功能?

对计算机发展比较有研究的朋友一定会知道ODBC&#xff0c;它是一个比较古老的东西&#xff0c;发展到现在Win8系统上版本已经是3.8了。微软虽然没有对ODBC做很大的更新&#xff0c;但是正因为ODBC是一个比较成熟和古老的规范&#xff0c;因此它的作用才显得不那么突出&#xff…

【HTML/XML 11】XML和HTML的混合使用

导读&#xff1a;在前面介绍了很多关于XML和HTML的东西&#xff0c;他们其实各有各的好处&#xff0c;在很多时候都需要结合起来使用。现在已经有XML和HTML结合的产物&#xff1a;XHTML&#xff08;可扩展超文本标记语言&#xff09;。在本篇博客中&#xff0c;则主要介绍通过引…

web架构之mysql服务器

SQL概述结构化查询语言(Structured Query Language)简称SQL&#xff0c;是一种特殊目的的编程语言&#xff0c;是一种数据库查询和程序设计语言&#xff0c;用于存取数据以及查询、更新和管理关系数据库系统&#xff1b;同时也是数据库脚本文件的扩展名。从上可以看出我们数据库…

ORM查询语言(OQL)简介--概念篇

相关文章内容索引&#xff1a; ORM查询语言&#xff08;OQL&#xff09;简介--概念篇ORM查询语言&#xff08;OQL&#xff09;简介--实例篇ORM查询语言&#xff08;OQL&#xff09;简介--高级篇&#xff1a;脱胎换骨ORM查询语言&#xff08;OQL&#xff09;简介--高级篇&#x…

mysql优化 top_Top 20+ MySQL Best Practices【sql优化】

Database operations often tend to be the main bottleneck for most webapplications today. It’s not only the DBA’s (database administrators)that have to worry about these performance issues. We as programmersneed to do our part by structuring tables proper…

hibernate分页

分页从网上考的&#xff0c;好用。这个框架 /** * 用于分页的工具类 * author 莫取网名 */ public class Pager<T> {private List<T> list; //对象记录结果集 private int total 0; // 总记录数 private int limit 10; // 每页显示记录数 private int pages 1; …

Scrum Meeting 博客汇总

Scrum Meeting 博客汇总 一、Scrum Meeting 1. Alpha 第一次 Scrum Meeting第二次 Scrum Meeting第三次 Scrum Meeting第四次 Scrum Meeting第五次 Scrum Meeting第六次 Scrum Meeting第七次 Scrum Meeting第八次 Scrum Meeting第九次 Scrum Meeting第十次 Scrum Meeting第十一…

mysql字符串外键约束_MySQL中的约束函数主外键

/*select语句有6大子句&#xff1a;(1)from子句(2)where子句(3)group by子句(4)having子句(5)order by子句(6)limit子句强调&#xff1a;每一个select的6大子句的顺序是(1)-(6)(1)from子句&#xff0c;后面跟表&#xff0c;视图&#xff0c;多行多列的二维表的结构from意思从哪…

POJ 3683 【2-sat+求一组可行解】.cpp

题意&#xff1a; 有一个牧师要给好几对新婚夫妇准备婚礼.. 已知每对新婚夫妇的有空的时间以及婚礼持续时间.. 问是否可以让每对新婚夫妇都得到该牧师的祝福~ 如果可以就输出YES以及可行解 不可以就输出NO 输入&#xff1a; 一个n 表示有n对新婚夫妇 接下来n行每行a b c 表示在…

Matlab并行编程方法1

相信很多朋友在利用matlab进行计算时&#xff0c;会遇到循环次数过大&#xff0c;或者是单次计算量过大的问题&#xff0c;比如需要计算的数值阵列数据量过大&#xff0c;利用传统的编程方式&#xff0c;跑一次程序几个小时&#xff0c;都要等的急死了是不是呢&#xff1f;如果…

使用postman修改SAP Marketing Cloud contact主数据

Marketing Cloud里的contact主数据&#xff0c;创建成功后也不是所有字段都能够被修改。在Personal data区域的字段是可以被修改的。 比如我在“客户属性”字段里维护了一些值&#xff1a; 然后点保存&#xff1a; 其中第二个batch操作是通过一个roundtrip读取contact模型下多个…

java判断一个对象是否为空_Java中判断对象是否为空的方法的详解

首先来看一下工具StringUtils的判断方法&#xff1a;一种是org.apache.commons.lang3包下的&#xff1b;另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的&#xff1a;StringUtils.isEmpty(CharSequence cs); //org.apache.commons…

解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题

笔者今天发现导入cocostudio的ui界面时&#xff0c;会有部分控件出现错位的现象&#xff0c;后来我看了一下源码&#xff0c;发现是部分控件是没有继承 Layout类&#xff0c;导致不能设置控件位置造成&#xff0c;原因可以看看cocos2dx 源码的CCSGUIReader.cpp文件的函数&#…

Media Queries

支持情况罗列成如下表&#xff1a; Media Queries 使用 说起CSS3的新特性&#xff0c;就不得不提到 Media Queries 。 本文比较详细&#xff0c;所以很多实际中用不到。所以如果只是想简单了解Media Queries&#xff0c;推荐参考 CSS3 Media Queries 。 CSS2.1定义了 Media 的部…

AndroidStudio脚本命令指定AAR生成目录与版本号

A build.gradle全局常量&#xff1a; //根路径def ROOT_PATH rootProject.rootDir.pathdef GROUP "com.genialsir.mobileads"def MOB_SDK_VERSION_NAME "1.1.2" 复制代码 B 在当前库项目的build.gradle文件中android{}中配置如下&#xff1a; //自定义a…

文本文件 java_简单的用java实现读/写文本文件的示例

简单的用java实现读/写文本文件的示例更新时间&#xff1a;2008年07月26日 13:09:26 作者&#xff1a;同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流)三个例子可以独立存在&#xff0c;所以根据需要只看其中一个就行了。/** 简单的读/写文本文件的示例* 这里…

7个华丽的基于Canvas的HTML5动画

说起HTML5&#xff0c;可能让你印象更深的是其基于Canvas的动画特效&#xff0c;虽然Canvas在HTML5中的应用并不全都是动画制作&#xff0c;但其动画效果确实让人震惊。本文收集了7个最让人难忘的HTML5 Canvas动画&#xff0c;包括画板、文字、图表等&#xff0c;希望你会喜欢。…