基础算法--二分查找插入位置

给定一个有序数组如 [0,1,2,3,4] (从小达大排序)和一个正整数 num,查找二分插入位置,使得,插入num后的数组依然有序

代码如下:

Java 版本

public int getInsertIndex(int[] nums, int num) {
if (nums == null || nums.length == 0) return 0;
int i = 0;
int j = nums.length - 1;
while (i <= j) {
int mid = (i + j) / 2;
if (nums[mid] < num) {
i = mid + 1;
} else if (nums[mid] > num) {
j = mid - 1;
} else {
return mid;
}
}
// 如果是升序则返回i,如果是降序返回j
return i;
}

Python 版本:

def get_insert_index(nums: list[int], num: int) -> int:
if len(nums) == 0:
return 0
i, j = 0, len(nums) - 1
while i <= j:
mid = (i + j) // 2
if nums[mid] == num:
return mid
elif nums[mid] > num:
j = mid - 1
else:
i = mid + 1
# 升序返回 i,倒序返回 j
return i

 

posted @   lenbkan  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示