当前位置: 首页 > news >正文

2024.3.19

1.哈希表

代码:

#include"hash.h"//申请结点
node_p create_node(int data)
{node_p new = (node_p)malloc(sizeof(node));new->data = data;return new;
}
//存入哈希表
void insert(node_p H[],int key)
{//数据要存入哈希表中指定下标的位置int i = key%MAX;//申请结点node_p new = create_node(key);//头插new->next = H[i];H[i] = new;
}
//输出哈希表
void show(node_p *H)
{if(H==NULL){printf("入参为空,请检查\n");return;}for(int i=0;i<MAX;i++){//输出指针数组所指向的链表node_p p = H[i];while(p!=NULL){printf("%d->",p->data);p=p->next;}printf("NULL\n");}
}
//查找元素
void search(node_p H[],int key)
{if (H==NULL){printf("入参为空,请检查\n");return;}int i = key%MAX;node_p p = H[i];if(p->data==key){printf("该元素下标为:%d\n",i);return;}else{p = p->next;printf("该元素下标为:%d\n",i);return;}if(p->data!=key){printf("没有该元素\n");return;}
}

结果:

2.快速排序和折半(二分)查找

快速排序

代码:

#include<myhead.h>//一次快排的代码,需要返回基准最后的位置
int one_sort(int *arr,int low,int high)
{//定义一个基准元素,每次的基准元素是序列中low下标的元素int base = arr[low];while(high>low){while(high>low&&arr[high]>base){high--;}arr[low] = arr[high];while(high>low&&arr[low]<base){low++;}arr[high] = arr[low];}arr[low] = base;return low;
}
//整体快排
void sort(int *arr,int low,int high)
{if(high>low){int ret = one_sort(arr,low,high);sort(arr,low,ret-1);sort(arr,ret+1,high);}
}int main(int argc, const char *argv[])
{int arr[]={98,72,65,43,12,66,25,39};int len = sizeof(arr)/sizeof(arr[0]);//one_sort(arr,0,len-1);    一次快排sort(arr,0,len-1);//输出for(int i=0;i<len;i++){printf("%d\n",arr[i]);}return 0;
}

结果:

折半查找

代码:

#include<myhead.h>//折半查找的函数
int half_search(int *arr,int low,int high,int key)
{while(high>=low)//查找算法,一个数也要查{int mid = (low+high)/2;if(arr[mid]==key){return mid;}else if(arr[mid]>key){high = mid-1;}else if(arr[mid]<key){low = mid+1;}}printf("没有该元素\n");return -1;
}int main(int argc, const char *argv[])
{int arr[]={12,25,36,47,58,89,92};//需要数组有序,逻辑有序即可int len = sizeof(arr)/sizeof(arr[0]);int n;printf("请输入想要查找到的元素:");scanf("%d",&n);printf("查找到的数据下标为:%d\n",half_search(arr,0,len-1,n));return 0;
}

结果:

3.思维导图

相关文章:

  • diffusion model(十四): prompt-to-prompt 深度剖析
  • QT 驾校系统界面布局编写
  • Nginx安装和平滑升级
  • 阿里云发布 AI 编程助手 “通义灵码”——VSCode更强了 !!
  • PX4|基于FAST-LIO mid360的无人机室内自主定位及定点悬停
  • layui table列表重载后保持进度条位置不变
  • 论文浅尝 | GPT-RE:基于大语言模型针对关系抽取的上下文学习
  • Json Web Token(JWT) 快速入门
  • [项目设计]基于websocket实现网络对战五子棋
  • Python使用whisper实现语音识别(ASR)
  • 【鸿蒙系统】 ---Harmony 鸿蒙编译构建指导(一)
  • 【Python】使用selenium对Poe批量模拟注册脚本
  • Docker使用之java项目工程的部署
  • Linux操作系统-汇编LED驱动程序基础
  • FX-数组的使用
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Js基础知识(四) - js运行原理与机制
  • MD5加密原理解析及OC版原理实现
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SQLServer之创建数据库快照
  • 对超线程几个不同角度的解释
  • 关于extract.autodesk.io的一些说明
  • 力扣(LeetCode)22
  • 说说动画卡顿的解决方案
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 协程
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 移动端高清、多屏适配方案
  • #Java第九次作业--输入输出流和文件操作
  • (+4)2.2UML建模图
  • (2022 CVPR) Unbiased Teacher v2
  • (C)一些题4
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)计算机毕业设计高校学生选课系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (一)u-boot-nand.bin的下载
  • (转)创业家杂志:UCWEB天使第一步
  • .NET BackgroundWorker
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET简谈设计模式之(单件模式)
  • .net流程开发平台的一些难点(1)
  • :not(:first-child)和:not(:last-child)的用法
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [BZOJ 3282] Tree 【LCT】
  • [c]扫雷
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [C++打怪升级]--学习总目录
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [FFmpeg学习]从视频中获取图片