插入C中的有序列表:使用数组还是链表?
当尝试插入有序列表时,考虑这两种情况。插入C中的有序列表:使用数组还是链表?,c,insertion,insertion-order,C,Insertion,Insertion Order,当尝试插入有序列表时,考虑这两种情况。 使用指针数组。二进制搜索以查找 插入点为: 使用memmove()移动字节,为新地址腾出空间 使用迭代移动地址,为新地址腾出空间 使用链表和线性搜索 哪个表现更好?我的猜测是,在优化代码中,1的两个选项。性能大致相同,但1的性能如何。二,。比较似乎他们都是O(n)。有没有更简单的方法?是否可以在任何类型的链表上设置二进制搜索 任何其他建议都将非常受欢迎。链表插入时间将是O(1)但是如果您需要一个有序的数据结构,那么您应该使用二元搜索树。但是搜索将是O(
- 使用memmove()移动字节,为新地址腾出空间
- 使用迭代移动地址,为新地址腾出空间
任何其他建议都将非常受欢迎。链表插入时间将是
O(1)
但是如果您需要一个有序的数据结构,那么您应该使用二元搜索树。但是搜索将是O(n),对吗?顺便说一句,您的链表缓存命中率通常会非常糟糕。#1的硬件预取器适合您。所以建立了一些声音测试和测量。@JeremyRosenberg是的,搜索单链接列表将是O(n)。@WhozCraig将这样做。我是否应该期待1中的两个选项。执行类似的操作