数组练习之二分查找和多个字符从两端向中间汇聚

简介: 数组练习之二分查找和多个字符从两端向中间汇聚

多个字符从两端移动,向中间汇聚

       实现思路:定义两个字符数组,将要移动的字符数组元素赋值给另一个数组元素,实现多个字符行两端向中间汇聚。(sizeof,strlen详解:sizeof,sizeof与strlen的区别-CSDN博客

数组:)

#include<stdio.h>
#include<string.h>//strlen的头文件
int main()
{
  char arr1[] = "hello world!!!";
  char arr2[] = "**************";
  int left = 0;
  int right = strlen(arr1) - 1;//数组元素下标,也可以用(sizeof(arr1)/sizeof(arr2))-2
  printf("%s\n", arr2);
  while (left <= right)
  {
    arr2[left] = arr1[left];
    arr2[right] = arr1[right];
    left++;
    right--;
    printf("%s\n", arr2);
    
  }
  return 0;
}

        上述代码打印结果是一瞬间的。经过下述改良之后,打印结果有时间间隔,且会清理上次打印结果,给人一种逐步打印的感觉,也展示了多个字符从两端移动,向中间汇聚的整体过程。宝宝们下来可以尝试一下。

下述代码会停顿1s打印:(Sleep函数可以控制程序的执行速度,该函数的参数类型为unsigned int,不是浮点数类型)

#include<stdio.h>
#include<string.h>//strlen的头文件
#include<windows.h>//Sleep的头文件
#include<stdlib.h>//system的头文件
 
 
int main()
{
  char arr1[] = "hello world!!!";
  char arr2[] = "**************";
  int left = 0;
  int right = strlen(arr1) - 1;//数组元素下标,也可以用(sizeof(arr1)/sizeof(arr2))-2
  printf("%s\n", arr2);
  while (left <= right)
  {
    Sleep(1000);//单位mms,这里停顿1s打印
    arr2[left] = arr1[left];
    arr2[right] = arr1[right];
    left++;
    right--;
    printf("%s\n", arr2);
    
  }
  system("cls");//清理屏幕上的信息
  printf("%s\n", arr2);//while循环打印的所有内容被清理之后,最后打印一次
  return 0;
}

最后显示在屏幕上的内容:

二分查找 (也叫折半查找)

       在一个升序数组中查找指定的数字n,很容易想到的就是遍历数组。接下来,我们就看看使用遍历数组的方法找指定的数字:

#include<stdio.h>
int main()
{
  int arr[]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  int i = 0;
  int k = 7;//在数组中找7
  int sz = sizeof(arr)/sizeof(arr[0]);//数组元素个数
  int find = 0;
  for (i = 0; i < sz; i++)
  {
    if (k == arr[i])
    {
      printf("找到了,下标是%d\n", i);
      find = 1;
      break;
    }
  }
  if (find == 0)
  {
    printf("找不到了\n");
  }
  return 0;
}

当是n个元素时,最坏的情况找了n次,效率低。而当我们折半查找效率就提高了很多。

二分查找

#include<stdio.h>
int main()
{
  int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  int k = 7;//要查找的数字
  int find = 0;
  int left = 0;
  int right = sizeof(arr)/sizeof(arr[1]) - 1;//元素个数
  int mid = 0;//中间元素的下标
  while (left <= right)
  {
    mid = (right + left) / 2;
    if (arr[mid] < k)
    {
      left = mid + 1;
    }
    else if (arr[mid] > k)
      right = mid - 1;
    else
    {
      find = 1;
      break;
    }
  }
  if (1 == find)
  {
    printf("找到了,下标是%d", mid);
  }
  else
    printf("找不到");
 
  
  return 0;
}

当然遍历数组和二分查找的运行结果是一样的 :

函数实现

 

int bin_search(int arr[], int left, int right, int key)
{
  int mid = 0;
  while(left<=right)
  {
        mid = left+(right-left)/2;
 
    if(arr[mid]>key)
    {
      right = mid-1;
    }
    else if(arr[mid] < key)
    {
      left = mid+1;
    }
    else
      return mid;//找到了,返回下标
  }
  return -1;//找不到
}

欢迎斧正!!!


目录
相关文章
|
17天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
12842 76
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
5天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
11天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1631 3
|
人工智能 JavaScript 开发工具
DeepSeek Harness 本地安装与使用指南
DeepSeek Harness(DSH)是DeepSeek AI开源的Agent运行框架,支持本地文件操作、命令执行与工具调用。基于Cordis插件架构,具备高扩展性与强可控性,适合开发者搭建可控Agent环境或开展模型基准测试。当前为开发者预览版,需Node.js环境,推荐先用`npx @deepseek-ai/dsh web`快速体验。
5016 0
|
12天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
1767 1
|
14天前
|
人工智能 JavaScript 测试技术
保姆级教程:DeepSeek Harness从安装到跑通测试,30分钟上手
DeepSeek Harness是DeepSeek开源的AI Agent运行时,主打“一行命令安装、5分钟跑通”。它让模型真正动手干活——读代码、跑测试、分析失败、生成修复方案。本文手把手教你30分钟从零上手,覆盖安装、配置、实测及避坑指南,助你快速掌握下一代AI编程范式。
|
15天前
|
开发工具 Swift git
DeepSeek Harness 插件推荐:4 款开源神器让写代码直接起飞
DeepSeek Harness 插件推荐:ModLens 视觉、Web UI 全家桶、Mac 原生与 GenUI 渲染,4 款开源插件给纯文本模型补齐短板。
2030 6
DeepSeek Harness 插件推荐:4 款开源神器让写代码直接起飞
|
13天前
|
人工智能 JavaScript 测试技术
从 0 到 1,DeepSeek Harness 保姆级安装与使用教程!
DeepSeek Harness是DeepSeek推出的开源Agent运行框架,秉持“一切皆插件”理念,支持模型、工具、技能、工作流等全模块自由替换与扩展。其核心Cordis内核实现动态插件管理,赋能Agent自进化。已成GitHub史上增速最快开源项目(15w+ Star),标志着国内大模型从拼价格转向重架构与生态的新拐点。
1296 5
从 0 到 1,DeepSeek Harness 保姆级安装与使用教程!

热门文章

最新文章