c - C 中的 strcmp 结构 - 不同元素

标签 c struct strcmp

我有一个包含大量字符串元素的结构成员。我想要的是迭代结构的整个成员并仅计算不同的元素(不同的姓氏)。

struct log {
    char *last;
};
...
struct log *l
l->last = last_name; // loading *last member with data coming from last_name var
...

比较和计算当前 *last 上的唯一元素的好方法是什么?

任何帮助将不胜感激。

最佳答案

根据 last_name 键对数组进行排序。重复项将彼此相邻。

对数组进行线性扫描,检查当前项之后有多少条目具有相同的姓氏。对于所有这些重复项,将计数器增加一次。将您的阅读头增加到第一个不同的条目。

对于大小为 n 的数组:O(n lg n) + O(n) = O(n lg n) 次操作,假设 O (n lg n) 排序例程。

关于c - C 中的 strcmp 结构 - 不同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780350/

相关文章:

c - 关于 strcmp() 的程序的 C 代码有什么问题?

c - 使用 C 中的条件按字典顺序对 3 个字符串进行排序

c - OpenMP 令人尴尬的并行循环,没有加速

java - 图像跟踪器库

arrays - 在c中对动态数组进行排序

c - 如何在 C 中创建结构体文字的数组文字?

python - 如何使用 ctypes 打包和解包(结构 <-> str)

go - 如何将 interface{} 转换回其原始结构?

c - qsort段错误

C 编程 - 一个数组和一个随机数组合的问题?