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

宜宾网站网站建设chinacd wordpress第三性

宜宾网站网站建设,chinacd wordpress第三性,网站重新备案需要多长时间,域名价格查询二分查找也称 半查找#xff08;Binary Search#xff09;#xff0c;它时一种效率较高的查找方法。但是#xff0c;折半查找要求线性表必须采用顺序存储结构#xff0c;而且表中元素按关键字 有序 排列。 注意#xff1a;使用二分查找的前提是 该数组是有序的。 在实际开…          二分查找也称 半查找Binary Search它时一种效率较高的查找方法。但是折半查找要求线性表必须采用顺序存储结构而且表中元素按关键字 有序 排列。 注意使用二分查找的前提是 该数组是有序的。 在实际开发中如果对应的索引不存在我们一般都是返回一个负数而且经常用   - 1   来表示。 请对一个有序数组进行二分查找  { 18108910001234}输入一个数看看该数组是否存在此数并且求出下标如果没有就提示 “没有这个数” 。 课后思考题{181089100010001234} 当一个有序数组中有多个相同的数组时如何将所有的数值都查找到比如这里面的1000。 { 18108910001234 }  二分查找的思路分析 1、首先确定该数组的中间的下标 mid left right /  2 2、然后让需要查找的数 findVal 和 arr[mid] 比较         2.1、findVal arr[mid] 说明你要查找的数在 mid 的右边因此需要 递归 的向右查找         2.1、findVal arr[mid] 说明你要查找的数在 mid 的左边因此需要 递归 的向左查找         2.3、findVal arr[mid]说明找到就返回 //什么时候我们需要结束递归。 1找到就结束递归 2递归完整个数组仍然没有找到findVal也需要结束递归  当left right 就需要退出 请对一个有序数组进行二分查找  { 18108910001234}输入一个数看看该数组是否存在此数并且求出下标如果没有就提示 “没有   这个数” 。 public class BinarySearch {public static void main(String[] args) {int arr[] {1, 8, 10, 89, 1000, 1234};int resIndex binarySearch(arr, 0, arr.length - 1, 88);System.out.println(resIndex);}/*** param arr 数组* param left 左边的索引* param right 右边的索引* param findVal 要查找的值* return 如果找到就返回下标如果没有找到就返回-1*/public static int binarySearch(int[] arr, int left, int right, int findVal) {//当left right 时说明递归整个数组但是没有找到if (left right) {return -1;}int mid (left right) / 2;int midVal arr[mid];if (findVal midVal) { //向右递归return binarySearch(arr, mid 1, right, findVal);} else if (findVal midVal) { //向左递归return binarySearch(arr, left, mid - 1, findVal);} else {return mid;}} } 完成一个课后思考题{1810100010001234}当一个有序数组中有多个相同的数值时如何将所有的数值都查找到比如这里的1000 思路分析 1、在找到 mid 索引值不要马上返回 2、向mid索引值的左边扫描将所有满足1000的元素的下标加入到集合ArrayList 3、向mid索引值的右边扫描将所有满足1000的元素的下标加入到集合ArrayList 4、将ArrayList返回 public class BinarySearch1 {public static void main(String[] args) {int arr[] {1, 8, 10, 89, 1000, 1000, 1000, 1000,1234};ListInteger resIndexList binarySearch2(arr, 0, arr.length - 1, 1000);System.out.println(resIndexList);}/*** param arr 数组* param left 左边的索引* param right 右边的索引* param findVal 要查找的值* return 如果找到就返回下标如果没有找到就返回-1*/public static ArrayListInteger binarySearch2(int[] arr, int left, int right, int findVal) {//当left right 时说明递归整个数组但是没有找到if (left right) {return new ArrayListInteger();}int mid (left right) / 2;int midVal arr[mid];if (findVal midVal) { //向右递归return binarySearch2(arr, mid 1, right, findVal);} else if (findVal midVal) { //向左递归return binarySearch2(arr, left, mid - 1, findVal);} else {ArrayListInteger resIndexlist new ArrayListInteger();//向mid索引值的左边扫描将所有满足1000的元素的下标加入到集合ArrayListint temp mid - 1;while (true) {if (temp 0 || arr[temp] ! findVal) { //退出break;}//否则就temp放入到resIndexlistresIndexlist.add(temp);temp - 1; //temp 左移}resIndexlist.add(mid);//向mid索引值的右边扫描将所有满足1000的元素的下标加入到集合ArrayListtemp mid 1;while (true) {if (temp arr.length || arr[temp] ! findVal) { //退出break;}//否则就temp放入到resIndexlistresIndexlist.add(temp);temp 1; //temp右移}return resIndexlist;}} } public class BinarySearch2 {public static void main(String[] args) {int[] array new int[]{10, 11, 12, 13, 14, 15, 16, 17};int target 10;int index search(array, target);System.out.println(index);}public static int search(int[] array, int target) {int min 0;int max array.length - 1;while (min max) {int mid (min max) / 2;if (array[mid] target) {return mid;}if (array[mid] target) {min mid 1;}if (array[mid] target) {max mid - 1;}}return -1;} } public class BinarySearch3 {public static void main(String[] args) {int[] arr2 new int[]{-98, -34, 2, 34, 54, 66, 79, 105, 210, 333};int dest1 35;int head 0; //初始的首索引int end arr2.length - 1; //初始的末索引boolean isFlag1 true;while (head end) {int middle (head end) / 2;if (dest1 arr2[middle]) {System.out.println(找到了指定的元素位置为 middle);isFlag1 false;break;} else if (arr2[middle] dest1) {end middle - 1;} else {head middle 1;}}if (isFlag1) {System.out.println(很遗憾没有找到的啦);}} }public class BinarySearch4 {public static void main(String[] args) {int[] arr2 new int[]{2, 4, 5, 8, 12, 15, 19, 26, 37, 49, 51, 66, 89, 100};int target 17;int head 0; //默认的首索引int end arr2.length - 1; //默认的尾索引boolean isFlag false;while (head end) {int middle (head end) / 2;if (target arr2[middle]) {System.out.println(找到了 target ,对应的位置为 middle);isFlag true;break;} else if (target arr2[middle]) {head middle 1;} else {end middle - 1;}}if (!isFlag) {System.out.println(不好意思未找到);}} } public class BinarySearch5 {public static void main(String[] args) {int[] arr {7, 23, 79, 81, 103, 127, 131, 147};System.out.println(binarySearch(arr, 150));}public static int binarySearch(int[] arr, int number) {int min 0;int max arr.length - 1;while (true) {if (min max) {return -1;}int mid (min max) / 2;if (arr[mid] number) {max mid - 1;} else if (arr[mid] number) {min mid 1;} else {return mid;}}} }
http://www.hkea.cn/news/14417420/

相关文章:

  • 公司网站开发详细流程空间设计公司网站
  • 网站搜索引擎优化案例做好的网页上传到wordpress
  • 网站建设365电子商务公司是干什么的
  • 游戏网站建设多少钱公司网公司网页设计制作
  • 厦门企业如何建网站用dw做一个个人网站
  • 网站建设 体会手机兼职免费加入不需要任何费用
  • 自己有域名怎么做免费网站企业网站建设多少钱
  • 展会网站制作北京市建设工程信息网交易网
  • 网站设计哪家公司好企业邮箱格式怎么注册
  • 海纳百川网站建设个人网站可以做百度推广么
  • 成都网站优化seoseo搜索优化 指数
  • 做机械设计的要知道哪些网站汽车精品网站建设
  • asp 手机网站上海网站制作最大的公司
  • 高质量的丹阳网站建设厦门网站建设114
  • 百度公司网站怎么做wordpress的ssl
  • 龙华网站建设推广外包域名网站都有怎么进去建设
  • 长春专业网站建设推广费用宁浩wordpress
  • 烟台网站制作步骤做网站开发没有人带
  • 做网站赚钱吗 怎么赚anaconda可以做网站吗
  • 手机网站客户端设计与实现迅驰互联网站建设网络推广怎么样
  • 淘宝网站怎么做链接地址中欣卡网上购物商城
  • 如何免费弄一个网站美发网站带手机版
  • 推荐一个免费网站网站开发详细设计
  • 手机软件做的相册怎样传到网站天台县建设局官方网站
  • 八上电脑课做网站需要什么软件东莞企业大全名录
  • html5彩票网站模板佛山 网站
  • 大连高端网站建设wordpress如何重装
  • 公司网站开发找哪家著名的个人网站
  • 那个网站做玉石最专业长安镇做网站
  • 贵州住房和城乡建设局网站网站开发html