美文网首页
2018-06-14 机试准备05

2018-06-14 机试准备05

作者: Huxx499 | 来源:发表于2018-06-14 12:40 被阅读0次

查找


一、例2.9 找x

此题很简单 线性遍历数组查找 O(m) 只是为了回忆该题型 

发现自己写的和参考实例不同的地方:我写了一个flag判断是否找到,并且找到就直接输出;参考实例则直接把ans设置为-1,找到也把下标赋值给ans,最后统一输出。(逻辑挺不一样的 不过都不影响)


二、例2.10 查找学生信息

首先回归了一下二分法的思路 注意该方法的基础是待查找数列已经排好序了;当出现查找起始点大于查找结束点时,说明查找子集已经为空集,查找失败。该法的时间复杂度为O(logm)

此题如果用线性查找,复杂度会达到O(n*m)千万数量级,而利用二分查找可以优化到O(nlogn*nlogm) 其中nlogn为升序排列复杂度

遇到的问题:

1) 忘记要升序排序了; 后来排序还是用的cmp 忘了可以重载<就不要cmp了; 而且cmp中比较字符串大小不确定如何实现,第一遍是return !strcmp(); 第二遍改为return strcmp()>0对了

2)结合数组和结构后二分查找代码实现部分下标比较混乱 容易想不清楚 base/i和top/j和(base+top)/2或(i+j)/2

3)初始化的问题 对大数组在外部定义 内部初始化时 直接初始化为{}好像不行 必须for循环来一步步{} (好吧这个还待确认?

和示例的区别:

1)示例的输出都是 输入一行就输出一行结果 我的处理是输入所有的待查序号后 再统一输出结果 这个需要在确认一下?

2)示例没有直接找到就输出 而是记住目标元素的下标 赋值给ans 而ans初始化为-1 所以可以最后直接判断是否=-1来判断是否找到 再统一输出 同例1

扩展:

二分查找的定界应用:如:在一个升序数组中,确定一个下标点,使在这个下标点之前的数字均小于等于目标数字,而数组中的剩余部分均大于目标数字。

编写程序:上例二分查找中的while循环条件里的跳出循环的top 即为该问题的数组下标点。 

相关文章

  • 2018-06-14 机试准备05

    查找 一、例2.9 找x 此题很简单 线性遍历数组查找 O(m) 只是为了回忆该题型 发现自己写的和参考实例不同的...

  • 2018-06-14 机试准备06

    贪心算法 一、例2.11 FatMouse'Trade 比较简单的贪心算法 但是太久没写还是绕了一会儿 其实主要是...

  • 为什么所有的婆媳关系都有矛盾,原因在这里?

    晓悠悠 2018-06-14 23:48 · 字数 757 · 阅读 0 · 日记本 从古至今,身边的朋友,机几乎...

  • 机试

    package com.example.js; import android.app.Activity; impo...

  • 2018-06-09 机试准备01

    今天开始正式日常做机试训练(参考书:计算机考研--机试指南)记录一些问题/解决办法/知识回顾/易错点/心得之类的。...

  • 2018-06-10 机试准备02

    日期类: 一、例2.3 求两个日期间的天数差;区间问题:统一区间 自己的写法 思路/错误: 1)统一到0000年0...

  • 2018-06-13 机试准备03

    Hash值的应用 将存储位置与数据本身对于起来的存储手段 一、例2.5 统计同成绩学生人数 在已知该例可以用Has...

  • 2018-06-13 机试准备04

    排版题 一、例2.7 输出梯形 该规律顺序与输出顺序一致,可以从上至下、从左至右应用规律。 二、例2.8 叠筐 图...

  • 2018-06-17 机试准备07

    数据结构 二、哈夫曼树(栈部分还没做完) 定义: 给定n个结点和它们的权值,以它们为叶子节点构造一棵带权路径长度和...

  • 2018-06-17 机试准备08

    数据结构 三、二叉树 遍历:前序(中左右)、中序(左中右)、后序(左右中)--------递归实现 一、例3.4 ...

网友评论

      本文标题:2018-06-14 机试准备05

      本文链接:https://www.haomeiwen.com/subject/wxbeeftx.html