当前位置: 首页 > news >正文

最便宜的视频网站建设城乡建设学校官方网站

最便宜的视频网站建设,城乡建设学校官方网站,wordpress原创主题简单,国外的贸易网站给定一个数组,在区间内从左到右查找中间值,每次查找最小值与最大值区间内的中间值,且这个区间元素数量不小于3。 例如 1.给定数组float[] data { 1, 2.3f, 4, 5.75f, 8.125f, 10.5f, 13, 15, 20 } 输出:10.5、5.75、4、2.3、8…

给定一个数组,在区间内从左到右查找中间值,每次查找最小值与最大值区间内的中间值,且这个区间元素数量不小于3。

例如

1.给定数组float[] data = { 1, 2.3f, 4, 5.75f, 8.125f, 10.5f, 13, 15, 20 }

输出:10.5、5.75、4、2.3、8.125、15、13

解释:

1)(20+1)/2=10.5,首先从整个数组中获取中间值;

2)(10.5+1)/2=5.75,从左边开始计算,左边为1,也就是区间[1,10.5],此区间元素数量大于2,因此需要计算;

3)(1+5.75)/2=3.375,左边为1,也就是区间[1,5.75],此区间元素数量大于2,因此需要计算;数组中不存在3.375,找最接近的4;

4)(1+4)/2=2.5,,左边为1,也就是区间[1,4],此区间元素数量大于2,因此需要计算;数组中不存在2.5,找最接近的2.3;

左边查找结束,查找右边

5)(5.75+10.5)/2=8.125,区间[5.75,10.5],此区间元素数量大于2,因此需要计算;

6)8.125与10.5,区间[8.125,10.5],此区间元素数量等于2,因此不需要计算;

7)(10.5+20 )/2=15.25,区间[10.5,20],此区间元素数量大于2,因此需要计算;数组中不存在,找最接近的15

8)(10.5+15)/2=12.75,先找左边区间,区间[10.5,15],此区间元素数量大于2,因此需要计算;数组中不存在,找最接近的13

9)15与20之间无,结束。

2.给定数组float[] data = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }

输出:5、3、2、4、7、6、8

代码:

 public static Queue<float> FindMiddle(float[] data){if (data.Length < 3) return new Queue<float>();int leftIndex = 0;int rightIndex = data.Length - 1;Queue<float> queue = new Queue<float>(data.Length - 2);FindMiddle(data, leftIndex, rightIndex, queue);return queue;}static void FindMiddle(float[] data, int leftIndex, int rightIndex, Queue<float> queue){if (rightIndex - 1 <= leftIndex) return;float target = (data[leftIndex] + data[rightIndex]) / 2f;int middleIndex = FindClosestNum(data, leftIndex, rightIndex, target, out float value);queue.Enqueue(value);FindMiddle(data, leftIndex, middleIndex, queue);FindMiddle(data, middleIndex, rightIndex, queue);}static int FindClosestNum(float[] nums, int leftIndex, int rightIndex, float target, out float middle){int left = leftIndex;int right = rightIndex;int mid = 0;float temp;while (left <= right){mid = left + ((right - left) >> 1);temp = nums[mid];if (temp == target){middle = temp;return mid;}else if (temp < target)left = mid + 1;elseright = mid - 1;}if (right < 0){middle = nums[left];return left;}else if (left >= nums.Length){middle = nums[right];return right;}else{if (Math.Abs(nums[left] - target) < Math.Abs(nums[right] - target)){middle = nums[left];return left;}else{middle = nums[right];return right;}}}

思路:从左边查找中间值,直到找完后找右边,一直到结束

http://www.yayakq.cn/news/640302/

相关文章:

  • 建国际网站需要多少钱软硬件开发都包括什么
  • 苏州企业网站公司都有哪些东莞有哪家比较好的网站建设公司
  • 网站建设费用:做个网站要多少钱?网站建设一定要买数据盘吗
  • 做网站 就上微赞网wordpress电子报
  • 阿里国际站网站建设公司网站优化去哪里学
  • 麟游住房和城市建设局网站厦门网站建设报
  • 站长之家ip查询工具绣花图案设计网站
  • 建设网站哪家强怎么用html做移动网站
  • php网站开发用什么工具罗湖田贝社区网站建设
  • 河南网站建设公司排名微信公众号怎么运营管理
  • 神魔网站建设易企秀网站开发
  • 网站文章更新注意什么海外销售平台有哪些
  • 广州建设银行分行招聘网站怎么建立自己网站 asp
  • 网站网站怎么做的网站页面设计费用
  • 网站备案号注销的结果用本机做网站浏览
  • 成品网站管理系统 源码平凉市住房和城乡建设局网站
  • 专业摄影网站推荐wordpress 附件目录
  • 深圳外贸响应式网站建设承德网站
  • 做网站一般要多少钱seo标题优化是什么意思
  • wordpress 文章简介模板网站 怎么做优化
  • 网站美工设计基础wordpress 微博同步
  • 做网站前台需要什么技能wordpress去掉cat
  • gif放网站有锯齿wordpress 更改服务器
  • 成都网站建设收费明细网站建设流程是什么意思
  • 佛山品牌网站建设报价腾讯企业邮箱扫码登录
  • 铜川市新区建设局网站搜索引擎网站建设
  • 青岛外贸网站推广广东外贸网站推广公司
  • 青海贸易网站建设公司做一个公司网页要多少钱
  • 湖北企业网站建设多少钱网站建设的目标与思路
  • 沈阳模板建站软件如何免费学校建网站