嵌入式3-19

news/2025/2/12 21:22:29/

1、哈希表的代码写完,写出给出关键字,找到该关键字在哈希表(指针数组)中下标的位置,以及在链表中的位置。(因为返回值只有一个,所以结果直接找到通过输出语句输出)

void search(node *H,int key);

2、快速排序和折半查找的代码写一遍

3、整理思维导图

1、

void search(node_p H,int key);
{
    int i = key%MAX;
    node_p q = H[i];
    while(q!=NULL && q->data!=key)
    {
        q = q->next;
    }
    if(q == NULL)
    {
        printf("查找失败\n");
        return 0;
    }else
    {
        printf("查找成功\n");
        return 1;
    }
}

2、

快速排序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int one_sort(int *a,int l,int h)
{
    int temp = a[l]; 
    while(h>l)
    {
        while(h>l&&a[h]>temp)
        {
            h--;
        }
        a[l] = a[h];
        while(h>l&&a[l]<temp)
        {
            l++;
        }
        a[h] = a[l];
    }
    a[l] = temp;
    return l;
}
void sort(int *a,int l,int h)
{
    if(h>l)
    {
        int ret = one_sort(a,l,h);
        sort(a,l,ret-1);
        sort(a,ret+1,h);
    }
}
int main(int argc, const char *argv[])
{
    int arr[]={34,78,56,90,12,100,23,76};
    int len = sizeof(arr)/sizeof(arr[0]);
    sort(arr,0,len-1);
    for(int i=0;i<len;i++)
    {
        printf("%d\n",arr[i]);
    }
    return 0;
}

二分查找:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.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;
        }
    }
    return -1;
}
int main(int argc, const char *argv[])
{
    int arr[]={12,34,56,77,86,90};
    int len = sizeof(arr)/sizeof(arr[0]);
    printf("找到的数据的下标为%d\n",half_search(arr,0,len-1,100));
    return 0;
}


http://www.ppmy.cn/news/1388997.html

相关文章

Mac版Jmeter安装与使用模拟分布式环境

Mac版Jmeter安装与使用&模拟分布式环境 1 安装Jmeter 1.1 安装Java环境 国内镜像地址&#xff1a;https://repo.huaweicloud.com/java/jdk/11.0.29/jdk-11.0.2_osx-x64_bin.dmg 下载dmg后&#xff0c;双击进行安装。 配置环境变量&#xff1a; # 1 打开环境变量配置文件…

html5cssjs代码 026 canvas示例

html5&css&js代码 026 canvas示例 一、代码二、解释 这段HTML代码定义了一个页面&#xff0c;其中包含一个容器和一个canvas元素。通过JavaScript代码&#xff0c;使用canvas绘制了一个矩形、一个填充了颜色的矩形、一个文本以及一个圆形。 一、代码 <!DOCTYPE ht…

Day61:WEB攻防-PHP反序列化原生类TIPSCVE绕过漏洞属性类型特征

知识点&#xff1a; 1、PHP-反序列化-属性类型&显示特征 2、PHP-反序列化-CVE绕过&字符串逃逸 3、PHP-反序列化-原生类生成&利用&配合 补充&#xff1a;如果在 PHP 类中没有实现某个魔术方法&#xff0c;那么该魔术方法在相应的情况下不会被自动触发。PHP 的魔…

python与excel第一节

python与excel第一节 由于excel在日常办公中大量使用&#xff0c;我们工作中常常会面对高频次或者大量数据的情况。使用python语言可以更加便捷的处理excel。 python与vba的比较 python语法更加简洁&#xff0c;相较于vba冗长复杂的语法&#xff0c;python更加容易学习。 p…

WPF按钮相关

跟着官网敲的按钮相关的内容,还涉及了wpf很多其他的知识 1.创建基本按钮 <Grid><StackPanel HorizontalAlignment"Left"><Button>Button1</Button><Button>Button2</Button><Button>Button3</Button></StackPan…

Modbus TCP转Profinet网关如何实现Modbus主站与多设备通讯

在工业控制领域中&#xff0c;Modbus TCP转Profinet网关&#xff08;XD-ETHPN20&#xff09;扮演着连接不同设备间通讯的重要角色。当将Modbus主站与十几台服务器进行通讯时&#xff0c;通过modbus tcp转profinet网关&#xff08;XD-ETHPN20&#xff09;设备将不同协议间的数据…

架构扩展性

架构扩展性&#xff1a;应用扩展 数据扩展 组织扩展 流程扩展 核心方法论–扩展立方体&#xff1a; x轴&#xff1a;无脑克隆 y轴&#xff1a;功能分割z轴&#xff1a;客户分割扩展立方体在应用扩展的应用&#xff1a; x轴&#xff1a;横向克隆 对于无状态的应用&#xff0c;多…

React——关于表单元素

关于React 处理表单元素&#xff0c;有两种方式: 受控组件【推荐】非受控组件 受控组件-表单元素&#xff08;状态可变&#xff0c;react的state控制&#xff09; HTML中表单元素是可输入的&#xff0c;即表单用户并维护着自己的可变状态&#xff08;input 的 value&#xff0…