package experiment.binarysearch; import java.util.Arrays; import java.util.Random; public class BinarySearch { public static void main(String[] args) { int[] data = getData(10); System.out.println(Arrays.toString(data)); // binarySearch_NotRecursion(data,data[9]); binarySearch_Recursion(data,data[3],0,data.length - 内含报酬率1); } // 生成待查数据 有序 public static int[] getData(int length){ Random random = new Random(); int[] data = new int[length]; for(int i = 0;i<length;i++){ data[i] = Int(10*length); } Arrays.sort(data); return data; } // 二分查非递归形式 public static void binarySearch_NotRecursion(int泥浆固液分离[] data,int target){ int left = 0; int right = data.length - 1; while(left <= right){ int mid = (left + right) / 2; if (data[mid] == target){ System.out.println("查到需要的元素:"+data[mid]+",在原数组中的下标为:"+mid); return; }else if (data[mid] < target){ left = mid + 1; 戴高帽子的猫 }else if (data[mid] > target){ right = mid - 1; } } System.out.println("未到需要搜索的元素"); } // 二分查递归式 public static void binarySearch_Recursion(int[] data,int target,int left,int right){ if (left > right){ System.out.println("未到需要搜索的元素"); return; } int mid = (left + right) / 2; if (data[mid] == target){ System.out.println("查到需要的元素:"+data[mid]+",在原数组中的下标为:"+mid); return; }else if (data[mid] < target){ left = mid + 1; binarySearch_Recursion(data,target,left,right); }else if (data[mid] > target){ right = mid - 1; binarySearch_Recursion(data,target,left,right); }复旦大学刘湘玲 } } |
本文发布于:2024-09-22 07:15:19,感谢您对本站的认可!
本文链接:https://www.17tex.com/xueshu/397692.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |