一、概念
二、代码
#include <stdio.h>
int inserValue(int nums[],int length ,int key);
int main()
{
// 现在有一个有序的数组, 要求给定一个数,将该数字插入到数组中,还要保证数组是有序的
// 其实就是找到插入需要插入的数字的位置
// 其实这个位置就是min的位置
/*
min = 0
max = 4
mid = 2
*/
// 0,1,2,3,4
int nums[5] = {1,3,5,7,9};
int key = 4;
int length = sizeof(nums) / sizeof(nums[0]);
printf("需要插入的位置是%i,\n",inserValue(nums,length,key));
return 0;
}
int inserValue(int nums[],int length ,int key)
{
int min,max,mid;
min = 0; // 1
max = length -1; // 4 1
while (min <= max) {
mid = (min + max) / 2; // 2 0 1
if (key > nums[mid]) {
min = mid + 1;
}
else if (key < nums[mid])
{
max = mid - 1;
}
else
{
return mid;
}
}
//
// return -1;
return min;
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。