leetcode 数据结构第一题

文章讲述了作者在解决数据结构问题时遇到的时间超时问题,尝试使用冒泡排序但导致更慢的速度和内存溢出。作者转向哈希表作为解决方案,虽然代码来源于CV,但计划理解和实现哈希表功能。文章提到了C语言库Uthash及其宏定义的哈希操作,并讨论了如何使用哈希表进行查找和插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始些了第一个数据结构的题目,毫无疑问的 时间超时了;

应该先排序再做会快一点。

冒泡排序比原来更慢了哈哈哈哈

而且中间还溢出了。 冒泡外面写的是趟数,里面是排序,小心边界。

最后用来哈希表,在王道书里面没有这一块的代码,理论知识好像自己学的还可以但是代码是 cv的,我来分析一下代码吧,不难但是需要我来看看有几个函数是怎么实现的。

我觉得有必要花一两天写个python? 好像用python会方便一点。

Uthash是c的比较优秀的源代码,它实现了常见的hash操作函数,查找、插入、删除等。

采用宏的方式实现hash函数的相关功能。(好好奇怎么宏还这么厉害的,不就是个定义方式吗!?!)

uthash中定义的哈希表中每个键值对都是一个实例化的结构体,结构体定义如下:

struct my_struct {

    int id;                    /* key */

    char name[10];             /* value */

    UT_hash_handle hh;         /* makes this structure hashable */

};

查找元素 HASH_FIND_INT

HASH_FIND_INT( users, &user_id, s ); /* s: output pointer */

插入元素 HASH_ADD_INT

HASH_ADD_INT( users, id, s );  /* id: name of key field */

好的,如果是这样完成的,那么我知道的少了,所以才会什么都想自己做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值