首页 > 编程语言 >拆办(二分)查找算法

拆办(二分)查找算法

时间:2023-03-14 23:32:15浏览次数:30  
标签:二分 arr right int mid 拆办 查找 arr2 left

该代码可以实现在一个有序数的序列中查找到我们需要的一个数,使用的算法是拆办(二分)查找算法

#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

相关文章

  • 二分图匹配(匈牙利算法和KM算法)
    二分图匹配对于一个二分图,其匹配是一个边的集合,每条边不应用重复的点它有一个匹配,为图中红色线段但这个匹配不是(边数)最大的,因此不是最大匹配匈牙利算法匈牙利算法......
  • 力扣 (LeetCode)刷题--704. 二分查找
    二分查找是一个非常基础的算法给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示......
  • HJ60 查找组成一个偶数最接近的两个素数
      importsysn=int(sys.stdin.readline().strip())sp=n//2l=range(sp+2)[::-1]check=1su=0j=2defchech_su(i):check=1j=2ifi==2ori==3:......
  • 800. 数组元素的目标和(双指针,二分)
    https://www.acwing.com/problem/content/802/二分:枚举a,对于每一个a[i],都二分一下求x-a[i],是否在b数组中#include<iostream>usingnamespacestd;constintN=1......
  • 二分查找法
    二分查找法functionbinarySearch($arr,$val,$hight,$low=0){$i=0;while($low<=$hight){$i++;$mid=ceil(......
  • NXP S32K312从零开发资源查找记录
    首先就是下载开发环境(40条消息)小猫爪:S32K3学习笔记01-S32K3RTD【MCAL&SDK】的使用和环境搭建_mcal开发sdk开发_小猫爪的博客-CSDN博客上述网址在安装S32DS.3.4_b201......
  • 在 Linux 中如何查找父进程 PPID?
    导读内核创建的进程称为“父进程”。从父进程派生或产生的进程称为“子进程”。父进程可能由多个子进程组成,每个子进程都具有唯一的PID(进程ID)但共享相同的PPID。......
  • LeeCode例题——二分查找
    1.二分查找:(面对一个升序排列的数组)classSoulution{public:intsearch(vector<int>&nums,inttarget){//函数名(数组,变量)intleft=0,right=nums.size()-......
  • 用python编写程序,使用筛选法查找并输出小于1000的所有素数
    #创建一个布尔数组,其中的值都是True,数组下标为i表示数字i是否为素数prime=[Trueforiinrange(1000)]#0和1不是素数,因此将它们的值设置为Falseprime[0]=Falseprim......
  • 插值查找——C语言描述
    插值查找——C语言描述目录插值查找——C语言描述0测试用例框架1定义2代码4测试用例0测试用例框架https://blog.csdn.net/m0_59469991/article/details/127137119?......