该代码可以实现在一个有序数的序列中查找到我们需要的一个数,使用的算法是拆办(二分)查找算法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
printf("找到了,元素下标是:%d", mid);
break;
}
}
return 0;
}
下面代码可以实现一段字符串,从两边向中间汇聚
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char arr1 = "Welcome to 512";
char arr2 = "##############";
int left = 0;
int right = strlen(arr1) - 1;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++;
right--;
}
return 0;
}
以上两个代码都是使用循环结构实现,作为今天的循环练习。
标签:二分,arr,right,int,mid,拆办,查找,arr2,left From: https://blog.51cto.com/u_16003640/6121186