`
lovnet
  • 浏览: 6813084 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

java算法:算法分析事例

 
阅读更多

java算法:算法分析事例

假设:有N个银行卡,给定M个交易中任一笔交易是否涉及到该N个银行卡中的任意一张。(针对该运用,N可能很大,M可能巨大。估算目标运行时间。)

例一:顺序查找

Java代码 复制代码
  1. publicstaticintsequentialSearch(inta[],intv,ints,intr){
  2. inti;
  3. for(i=s;i<=r;i++){
  4. if(v==a[i]){
  5. returni;
  6. }
  7. }
  8. return-1;
  9. }

该方法检查v是否在先前存储的数a[s],a[s+1],...,a[r]中,方法从头开始造,依次与每个数进行比较。顺序查找对每个不成功的查找都要检查N个对象,对于成功查找平均约检查N/2个对象。

例二:折半查找

Java代码 复制代码
  1. publicstaticintbinarySearch(inta[],intv,ints,intr){
  2. while(r>=s){
  3. intm=(s+r)/2;
  4. if(v==a[m]){
  5. returnm;
  6. }
  7. if(v<a[m]){
  8. r=m-1;
  9. }else{
  10. s=m+1;
  11. }
  12. }
  13. return-1;
  14. }

折半查找,前提是表中的数据是有序的(如:从小到大)。折半查找要检查的对象个数不会超过floor(lgN) + 1。:floor()向下取整,ceil()向上取整,round()四舍五入。

当N翻倍的时候,折半查找的运行时间几乎没有变化,但是,顺序查找的运行时间却增加了一倍。显然,随着N的增长,对于巨大的M,顺序查找是不可行的,但是折半查找执行的速度确是不错的。

分享到:
评论

相关推荐

    java编写的递归算法的经典事例

    ### Java编写的递归算法的经典事例:全排列输出 #### 概述 本文将详细介绍一个用Java编写的递归算法实例,该实例用于实现字符数组的所有可能全排列。通过这个例子,我们可以深入理解递归的基本概念、工作原理以及...

    lucene的查询语法事例

    - **字段查询 (Field Query)**:指定查询的字段,如`title:"搜索算法"`,只在标题字段中查找。 - **分数与排序 (Scoring & Sorting)**:Lucene会根据查询的相关性计算每个文档的得分,用于排序。可以通过`sort`参数...

    VC 结合Java编程的实例.rar

    一个软件为了快速开发,可能是使用Delphi或VB作为界面开发首选语言,底层的指令或核心算法,会使用C/C 处理,涉及数据处理的时候,为了安全和快速开发,会使用Javascript或Python等脚本语言实现数据分析处理。...

    模拟交通灯报告及做出的事例

    8. **性能评估**:模拟完成后,需要评估结果,例如计算平均等待时间、通行车辆数、拥堵情况等指标,这可能需要统计学和数据分析知识。 9. **实时性与并发处理**:在多车流或复杂交通场景下,模拟可能需要考虑并发和...

    一个简单的死循环事例

    标题中的"一个简单的死循环事例"指的是一个能够无限重复执行的代码块,不会自行停止,除非受到外部干预。这通常是由于循环的退出条件没有得到满足导致的。 在描述中提到,“初学者可以借鉴一下,还凑合”,暗示了这...

    图书管理系统事例2

    《图书管理系统事例2》是针对图书管理领域的一个典型应用案例,它涵盖了软件工程中的多个重要阶段,包括需求分析、概要设计、详细设计以及用户手册的编制。这个系统旨在帮助图书馆高效地进行图书的录入、检索、借阅...

    swarmcache 缓存 入门 事例

    - **一致性哈希:** 可以选择使用一致性哈希算法来确定数据的存储位置,这有助于减少节点加入或离开集群时的数据迁移量。 - **自定义缓存策略:** 除了LRU策略外,还可以根据应用需求自定义缓存淘汰策略。 #### 六...

    Android 图片缓存 源码+事例

    在源码分析方面,我们关注以下几个关键组件: 1. **ImageLoader**:是整个框架的入口,负责配置缓存策略、线程池等,并启动图片加载任务。 2. **ImageLoaderConfiguration**:用于设置各种配置参数,如内存缓存大小...

    JSP登陆事例 JSP 登陆实例 jsp 登陆 JSP登陆问题 JSP三层 JSP 访问SQL

    在IT领域,JSP(Java...在实际项目中,"JSP登陆事例"这个压缩包文件可能包含了实现上述功能的JSP页面、JavaBean、配置文件以及相关的测试数据。通过学习和分析这些文件,你可以更深入地理解JSP登录系统的实现细节。

    程序员面试宝典(全)

    - **编程语言掌握**:熟悉至少一种主流编程语言(如Java、C++、Python等),掌握其基本语法、常用数据结构及算法。 - **算法与数据结构**:熟练掌握常见的数据结构(数组、链表、栈、队列、哈希表、树、图等)以及...

    销售小白如何面试世界500强公司-素材.docx

    - **算法和数据结构**:熟悉常见的排序、查找算法,理解复杂度分析,并能解决实际问题。 - **操作系统和网络**:了解操作系统原理,如进程、线程和内存管理,以及网络协议和模型。 - **数据库知识**:理解SQL语言,...

    2019程序员互联网公司最新面经(包含腾讯、百度、阿里等)

    - **基础算法与数据结构**:熟悉常见的排序算法及其时间复杂度、空间复杂度,例如快速排序、冒泡排序等。 - **项目经验**:准备详尽的项目案例,包括项目背景、技术选型、遇到的问题及解决方案等。 - **技术细节**:...

    智能车竞赛介绍&竞赛案例&智能车开发技术&技术项目.zip

    1. **案例分析**:选取历年来的典型参赛作品进行分析,探讨其设计理念、技术实现和比赛表现。 2. **失败教训**:分享一些团队在比赛中遇到的问题和解决方法,以供后来者借鉴。 3. **技术创新**:突出展示在比赛中...

    DN_sample.zip_DEMO_电子

    【描述】"开发demo,完整的可以运行的事例,可以完美实现"说明这个压缩包内的内容是一个开发的演示版本,它不仅包含了完整的代码或应用程序,而且这些代码或应用是可以直接运行的。"可以完美实现"表明这个DEMO已经...

    有关于运城市的求职信有工作经验的求职信.rar

    2. **技能匹配**:列举你的专业技能,比如熟悉Java、Python、C++等编程语言,或者在云计算、大数据分析等方面的经验,确保这些技能与目标职位的要求相吻合。 3. **工作经验**:详述你在过去的工作中是如何应用这些...

    面试问题及回答技巧大公开.zip

    例如:“我是一名拥有5年经验的软件工程师,曾在ABC公司负责过X项目,通过优化算法提高了系统性能30%。” 2. **你为什么离开上一家公司?** - 要保持积极正面,避免过多谈论负面因素。例如:“我在上一家公司的...

    2.5D个人简历PPT模板.pptx

    在这个部分,可以列出对应岗位的关键要求,并解释自己如何满足这些要求,如:“对于软件工程师的岗位,我理解其需要精通Java和Python编程,具备良好的问题解决能力和项目管理经验。我在过去的实习中已经积累了这些...

Global site tag (gtag.js) - Google Analytics