一、概念
二墩弯、代碼
#include <stdio.h>
int inserValue(int nums[],int length ,int key);
int main()
{
// 現(xiàn)在有一個有序的數(shù)組, 要求給定一個數(shù),將該數(shù)字插入到數(shù)組中,還要保證數(shù)組是有序的
// 其實就是找到插入需要插入的數(shù)字的位置
// 其實這個位置就是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;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者