11得票9回答
stdlib的qsort函数是递归的吗?

我读过qsort是一种通用排序算法,没有任何关于实现的承诺。我不知道各个平台库之间的差异,但是假设Mac OS X和Linux的实现大致相似,qsort的实现是递归和/或需要大量堆栈吗? 我有一个大数组(成千上万个元素),我想在不使堆栈崩溃的情况下对其进行排序。或者,是否有类似的针对大数组的...

8得票2回答
使用stdlib的qsort()函数对字符串数组进行排序

一些前言:我是一名计算机工程专业的学生,在学习了三个学期的Java(包括数据结构)后,正在上C语言的第一门课程。这个问题与我的作业有关,但与解决它相距甚远。 我有一个输入文件,将其读入内存中,以char[9][500]的形式存储。我最多读取500个最长为8个字符的字符串。我试图使用stdli...

8得票4回答
快速排序示例中的错误(K&R C书)?

这个快速排序算法旨在将“v [left] ... v [right]”按升序排列。此内容来自K&R(第二版)的《C程序设计语言》(无注释)。 void qsort(int v[], int left, int right) { int i, last; void sw...

12得票3回答
使用qsort对结构体指针数组进行排序

我尝试在这个结构体数组上使用qsort,但结果很奇怪。 这是我的结构体: struct access_data{ int sector; int arrival_time; int checked; int processed; }; 我从文件中构建了一...

9得票3回答
在C语言中使用qsort对字符数组进行排序

我正在尝试使用qsort对字符数组进行排序。但是我不知道为什么它不能正常工作。我已经按照man页面的说明,将比较函数的指针作为参数传递给了qsort。请问有人能告诉我问题出在哪里吗?谢谢。以下是我的代码: #include <stdio.h> #include <stdli...

11得票4回答
Qsort 比较函数

我是C语言的初学者, 我正在尝试理解qsort函数所需的比较函数。 第一部分: 语法 一个简单的建议用法是这样的(我已经包含了一些main()代码来打印结果):#include <stdio.h> #include <stdlib.h> int values[] ...

36得票3回答
qsort:将比较函数本身或比较函数体内的参数强制转换?

使用qsort的几种明显方法:在比较器中进行强制类型转换: int cmp(const void *v1, const void *v2) { const double *d1 = v1, *d2 = v2; ⋮ } qsort(p, n, sizeof(double),...

7得票4回答
qsort函数在size为0时未定义?

我有一个报告,虽然未经过我确认,但是来自可靠的消息来源,说这段代码: qsort(a, n, sizeof *a, cmpfunc); 这是由现代版本的gcc编译的,就好像它已经被写出来了一样 if(n == 0) __builtin_trap(); qsort(a, n, s...

10得票2回答
Golang自定义排序比原生排序更快

我刚刚在golang中尝试了排序,发现stackoverflow上有一个qsort函数。它的运行速度似乎比golang本地的sort函数快约两倍。我尝试了不同的输入大小并测试了它的可行性。 有人可以解释一下为什么会这样吗? 以下是你可以在电脑上测试的代码: package main i...

13得票3回答
使用qsort对长整型数组进行排序,在处理大数字时无法正常工作

我正在使用这个比较函数来对由long long int类型的数字组成的数组进行排序。int compare(const void * p1,const void * p2) { return (* (long long int * )a-*(long long int * )b); }...