数组查找(折半查找法)
首先要确定数组的中值,与需要查找的数进行对比,进一步缩小范围。举一个简单的例子,买了一件衣服,猜猜多少钱,200,那就低了,再猜500那就高了,所以范围就缩小到200-500。从数组1-9里面找到7,直接展示代码。
#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数
int right = sz - 1;
int left = 0;
while (left < right)
{
int mid = (right + left) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else
if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("找到了,下标为:%d\n", mid);
break;
}
}
if (left > right)
{
printf("没有找到\n");
}
return 0;
}
数组替换
将数组2(对应的空格)可以用#代替,替换成welcome to China,需要两个数组对应的元素相互替换。
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
char arr1[] = "welcome to China";
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);
Sleep(1000);
left++;
right--;
}
return 0;
}