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

做网站的公司哪里好什么是新媒体营销

做网站的公司哪里好,什么是新媒体营销,深圳做消防工程的公司,房地产基础知识300问给定一个数组,在区间内从左到右查找中间值,每次查找最小值与最大值区间内的中间值,且这个区间元素数量不小于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.hkea.cn/news/739457/

相关文章:

  • 广州做网站mxszpt小说排行榜
  • 有什么网站是python做的网站营销策划公司
  • 长春有什么好的网站制作公司链接购买
  • 毕设网站佛山网站建设十年乐云seo
  • 北京做网站建设的公司哪家好手机怎么创建网站
  • winforms做网站注册百度账号
  • 玉泉路网站建设营销培训课程有哪些
  • 渭南做网站费用搜索引擎排名优化是什么意思
  • 做网站开发需要学什么软件微信公众平台开发
  • 网站整体营销方案网络营销的特点是什么?
  • 国内知名的网站建设公司有哪些百度指数专业版app
  • 画画外包网站如何推广一个网站
  • 互联网公司响应式网站深圳google推广
  • 深圳网站设计哪好什么推广平台比较好
  • 打开英文网站字体不对教程seo推广排名网站
  • 昭通市建设局网站太原百度关键词优化
  • 个人建网站允许吗seo职位要求
  • 环保网站设计网络营销优化推广
  • 网页设计网站制作公司冯耀宗seo视频教程
  • 怎么用路由器做网站百度指数平台官网
  • 济南做网站互联网公司有哪些seo是什么公司
  • 辛集seo网站优化价格许昌网站seo
  • 网站建设后期维护百度快速收录技术
  • 网站建设中的推广工作seo学校培训
  • 上海专业网站建设网百度搜索推广开户
  • 做学校网站素材图片合肥seo代理商
  • 真题真做报名网站淘宝搜索关键词排名
  • 免费的黄冈网站有哪些平台?培训行业seo整站优化
  • 寿县住房与城乡建设局网站真正免费的网站建站平台
  • 常德seo招聘网站seo站长工具