二分法查找最大值,二分查找法的次数怎么确定

首页 > 教育 > 作者:YD1662024-05-14 23:45:38

将旋转点之后的数据整体放在数组之前:

二分法查找最大值,二分查找法的次数怎么确定(5)

上面说二分查询只是针对有序的数组,这又不是一个有序的数组,但是数组分成两部分有序的数组。

二分法查找最大值,二分查找法的次数怎么确定(6)

public int search(int[] nums, int target) { int length = nums.length; if (length == 0) { return -1; } if (length == 1) { return nums[0] == target ? 0 : -1; } int left = 0,right = length-1; while (left <= right) { int mid = left (right - left)/2; if (nums[mid] == target) { return mid; } if (nums[0] <= nums[mid]) { if (nums[0] <= target && target < nums[mid]) { right = mid -1; } else { left = mid 1; } } else { if (nums[mid] < target && target <= nums[length - 1]) { left = mid 1; } else { right = mid - 1; } } } return -1; } 69.x的平方根题目描述

二分法查找最大值,二分查找法的次数怎么确定(7)

解题思路

求解平法根,也就是k² <= x,也就是求解 k 最大整数值。对 x 进行二分查找。

public int mySqrt(int x) { if (x == 0 || x == 1) { return x; } int left = 1; int right = x; int result = -1; while (left <= right) { int mid = left (right - left)/2; if ((long)mid * mid > x) { right = mid - 1; } else { result = mid; left = mid 1; } } return result; } 153.寻找旋转排序数组中的最小值题目描述

二分法查找最大值,二分查找法的次数怎么确定(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.