Lua学习之二分查找
来源:互联网 发布:网络报价单 编辑:程序博客网 时间:2024/05/29 18:42
Lua学习之二分搜索
作为技术小白的我,毕业的时候参加一家游戏公司的面试。由于自己实习的时候用过一段时间的Lua,所以简历上标明自己会Lua。结果面试官让我用Lua写一个二分搜索,当时自己就懵了,已经大半年没有用Lua了,很多语法都忘记了。回来之后,惭愧不已,自己翻看了一下语法,就写了一个,表示要重新学习Lua。
经过简化之后题目原型:
使用二分法从一个有序表中找出指定的值v,如果查找到,返回序号和v,反之,返回序号和接近v的值。
使用[LuaEditor][6]作为编译器版本是6.30版。支持断点跟踪,查看堆栈,语法高亮是很好的一个编译器。
代码块
-- 二分查找array = {1,3,5,9,13,19,35,40,45}function Search(t,v) local left = 1; local right = table.getn(t) local mid = math.ceil((left + right)/2) while left ~= mid do if t[mid] == v then break; elseif t[mid] < v then left = mid + 1 else right = mid -1 end mid = math.ceil((left + right)/2) end return mid,t[mid]endprint(Search(array,2))
写完代码之后,可按F7进行编译,F5运行,F9下断点。和大部分编译工具一样。
上面的输出结果时:
由于没有查找到2,所以返回和2接近的1。结果显示两个11是因为,第一个1是索引,第二个1是值。我们修改一下查找的值。
print(Search(array,40))
结果变成:
0 0
- Lua学习之二分查找
- 算法学习之二分查找
- 算法学习之二分查找
- 查找之二分查找
- 查找之二分查找
- 查找之二分查找
- 算法学习之路-二分查找
- 算法学习之java实现二分查找
- C 语言学习之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找之二 , 二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 函数式宏定义与普通函数
- Eclipse中更改Maven默认仓库位置ec
- 关于23种设计模式的有趣见解
- oc_study16 @property和@synthesize
- Iptable指令语法
- Lua学习之二分查找
- 【数据库】SQLite与SQL差异问题汇总
- 【HDU 2829】Lawrence
- 看好你的门-XSS攻击(1)-利用反射型XSS漏洞 山寨红客插红旗
- HttpURLConnection用法详解
- JVM原理和优化
- hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比
- bitmp 保存到文件中
- 【LeetCode从零单排】No 191.Number of 1 Bits(考察位运算)