- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的源文件,但是当我编译它时,我得到了对合并排序的 undefined reference 。
#include <lcthw/darray_algos.h>
#include <stdlib.h>
int DArray_qsort(DArray * array,DArray_compare cmp)
{
qsort(array->contents, DArray_count(array), sizeof(void *), cmp);
return 0;
}
int DArray_heapsort(DArray * array, DArray_compare cmp)
{
return heapsort(array->contents, DArray_count(array),
sizeof(void *), cmp);
}
int DArray_mergesort(DArray * array, DArray_compare cmp)
{
return mergesort(array->contents, DArray_count(array),
sizeof(void *), cmp);
}
我不知道如何正确链接 stdlib 排序函数我一直在使用这个通用的 makefile 但它似乎使 stdlib 失败
CFLAGS=-g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG $(OPTFLAGS)
LDFLAGS=$(OPTLIBS)
PREFIX?=/usr/local
SOURCES=$(wildcard src/**/*.c src/*.c)
OBJECTS=$(patsubst %.c,%.o,$(SOURCES))
TEST_SRC=$(wildcard tests/*_tests.c)
TESTS=$(patsubst %.c,%,$(TEST_SRC))
TARGET=build/liblcthw.a
OS=$(shell lsb_release -si)
ifeq ($(OS),Ubuntu)
LDLIBS=-llcthw -lbsd -L./build -lm
endif
# The Target Build
all: $(TARGET) tests
dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS)
dev: all
$(TARGET): CFLAGS += -fPIC
$(TARGET): build $(OBJECTS)
ar rcs $@ $(OBJECTS)
ranlib $@
build:
@mkdir -p build
@mkdir -p bin
最佳答案
heapsort
和 mergesort
不是 C 标准库的一部分。您应该看看 C++ 编译器是否具有这些功能。
关于c - C 标准库中 mergesort() 的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54779736/
我刚刚实现了这两种算法,当我绘制结果时我很惊讶!递归实现显然比迭代实现更快。之后,我将插入排序与两者相结合,结果是一样的。 在讲座中,我们经常看到递归比阶乘计算中的迭代慢,但在这里似乎并非如此。我很确
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 8年前关闭
尝试在 Java 中实现归并排序。我在脑海中仔细检查了我的代码,我觉得它应该可以工作,但显然我做错了什么。这是代码 public static void mergeSort(int[] inp
我有一个程序 Mergesort 与无序列表一起工作。我得到的问题是段错误(核心转储)。 实际上,我经常收到此错误,但我不知道如何解决。此外,它不会显示任何错误或警告消息来查找它。在这个源代码和其他一
我正在尝试使用多线程实现合并排序的版本。首先,我知道这里有十亿条线索(给予或接受......),而我读了一些但无济于事!我试图证明并行使用线程可以加快进程的速度。然而,我遇到的问题是我的代码没有显示和
package merge; public class Merger { int[] a = {1, 10, 5, 9}; // int[] a = {1, 10, 5, 9, 8, 6, 3,
我正在上算法课,并试图在 C++ 中实现合并排序。我试图存储左右子数组,但意识到我无法这样做,因为我无法在运行时初始化大小。有没有办法解决这个问题,或者我是否错误地进行了排序过程?我在下面列出了我所拥
遇到合并排序问题。对数组进行排序后,我希望它只打印完全排序的数组,而不是每次传递。我的代码如下。我在数组似乎已排序后运行 printArray(intArray) 。也许我把它放在错误的地方?您可以在
练习合并排序时遇到问题。我在线程“main”java.lang.ArrayIndexOutOfBoundsException 中收到异常:1mergeSort 部分工作得很好,但重新组装数组对我来说很
在多次递归调用后,low 变为等于 high,递归中断。之后会发生什么?谁能解释一下。合并过程对我来说很清楚:当调用 mergesort(0,5) 时,它会再次调用自身:mergesort(0,2)
这是基于 Cormen 书中给出的算法。我做错了什么? #include #include void mergesort(int a[],int,int); void merge(int a[],
我正在尝试在合并函数中使用 for 循环为 mergesort 编写 C 代码。不幸的是它不工作。在 main 函数中,我按降序在 10 个 int 上创建了一个 array,然后调用 mergeso
代码目录结构, ./Computing$ ls -LR .: list file.txt mergeSort.c program.exe type.h ./list: arrayImpl.c l
我想制作一个 MergeSort 算法,我想从外部文件(如 txt)获取我的数据,当我导入我的文件时,我得到一些奇怪的结果 [9. 9. 9. 9.] 我的输入数据是 [12, 44, 11, 9]
我一直在尝试实现我的“自己的”MergeSort,它似乎适用于较小的值,但我正在以随机顺序在 1-100,000 的数组上尝试它,并在打印时混合了一些奇怪的数字退出。我已经跟踪了 10 次,但都没有运
我一直在尝试编写一个基本的自上而下的归并排序,但代码执行完毕后数组并未完全排序。我试过调试它,但所有的递归使得很难查明。我也曾尝试将我的代码与其他合并排序示例进行比较,但我没有找到任何差异 p
我在 python 中使用递归编写了一个 MergeSort 程序,但我不断收到有关第 27 行、第 23 行、第 18 行和递归错误的错误: “RecursionError:比较时超出了最大递归深度
我正在使用“算法简介”中描述的算法实现 Mergesort。但是,在每次执行时,我都会得到一个垃圾值作为排序数组的第一个元素。这是它的代码: #include #include #include
以下合并排序来自数据结构和算法分析 (Weiss)。我想知道的是合并步骤中的最后一个 for 循环。我知道我们必须将 tmpArray 复制回 array,但我不明白为什么我们从 rightend 开
我的教授分配了一个问题,我们必须使用堆栈(或队列)来进行非递归 MergeSort。目前代码如下: private static void sort(Comparable[] a, int[] in
我是一名优秀的程序员,十分优秀!