问题标签 [qsort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
11484 浏览

c - 如何从 stdlib 为 qsort 编写比较函数?

我有一个结构:

这些结构的表:

我想做的是tab_pkttab_pkt.alfaand排序tab_pkt.r

哪里 porownaj 是一个比较函数,但是怎么写呢?这是我的“草图”:

0 投票
3 回答
6889 浏览

c - 稳定标准库 qsort?

我假设 stdlib 中良好的旧 qsort 函数不稳定,因为手册页没有说明它。这是我正在谈论的功能:

我假设如果我将比较函数更改为也包括我正在比较的地址,它将是稳定的。那是对的吗?

例如:

0 投票
5 回答
6347 浏览

c - 使用 qsort 对列表进行排序?

我正在编写一个程序,您可以在其中通过键盘或文件输入单词,然后按长度排序。有人告诉我应该使用链表,因为单词的长度和它们的数量不是固定的。

我应该使用链表来表示单词吗?

然后如何使用 qsort 按长度对单词进行排序?qsort 不适用于数组吗?

我对编程很陌生。

谢谢你。

0 投票
2 回答
604 浏览

c - Programming Pearls 中的 qsort 函数出错?

只是我还是Programming Pearls中的这段代码是错误的(quicksort 需要 2 个 const void,不是吗?)如果是这样,我的解决方案是否正确?抱歉,学习了...

这是一个解决方案吗?

0 投票
4 回答
969 浏览

c++ - Qsort基于c字符串中的列?

一个类项目涉及对一个字符串数组进行排序,每个字符串包含相同数量的列,如下所示:

该程序接受一个命令行参数来指定要排序的列,并且应该打印出未修改的排序字符串。

我想使用 strtok 将每个字符串的副本分解为列,并为每一行制作这样的结构:

我的问题在于 qsort 作为参数的比较函数指针。如果我理解正确,比较函数必须采用两个指向要排序的项目的const void 指针,并返回一个 int。这意味着我不能将指向结构的指针传递给比较函数,因为这不是 qsort 将要排序的内容。我不能将列号传递给比较函数,因为它只能接受两个参数。如何解决这个问题以根据特定列对这些字符串进行排序?

编辑:如果我真的想要,排序仅限于 qsort 或我自己的。给出选择,我选择qsort。:)

编辑#2:共识似乎是使用全局变量作为列号,或者只使用 qsort 对结构数组进行排序。我没想过只是对结构进行排序,然后使用其中的指针打印出原始字符串。我想这就是我要做的。感谢大家的帮助!

0 投票
1 回答
2265 浏览

c - 如何在 C 中实现 qsort

我需要在 C 中实现 qsort 并按相反的字典顺序排序。我对如何创建和调用比较函数感到困惑。这是我到目前为止所拥有的..

Eclipse 在 qsort 行上告诉我“'sort' undeclared (first use in this function)”,但我担心这不是我唯一的问题。有什么建议吗?

谢谢, 赫里斯托

修订...这是我的数组的样子:

0 投票
1 回答
2786 浏览

c - c中的bsearch函数

如果我有两个功能:

使用 qsort 函数进行排序和比较,如何使用 bsearch 查找列表的子集。例如,如果我有两个列表:

  • (列表 A)鲍勃、吉米、李、詹姆斯、安妮
  • (名单 B)Jen、Jon、Lee、James、Steph

如何在列表 B 中搜索以找到 A 中的那些元素?

您还可以在列表 B 中进行搜索以找到不在 A 中的元素吗?

谢谢。

0 投票
1 回答
689 浏览

c - 使用 qsort、bsearch 帮助 C 中的指针

我在使用某些指针/数组表示法时遇到问题。我有两个列表并正在对它们进行排序,然后尝试显示它们。关于声明是什么以及为什么,我在下面的代码中有 3 条评论。我的代码如下所示:

0 投票
5 回答
762 浏览

c - 帮助解决功能中的分段错误

一段时间以来,我一直在尝试解决这个 bsearch 作业问题。我尝试使用我的代码首先搜索一个条目,如下所示:

我的missedFirstMeeting 似乎可以正确调用单个值,但是当我尝试在循环中重复调用我的 SearchList 函数时,如下所示:

我收到分段错误错误。对我来说,似乎我在做同样的事情,但只是重复调用 SearchList(),但显然有什么问题我没有看到,因为我收到了分段错误错误。有任何想法吗?谢谢。

0 投票
2 回答
1723 浏览

c++ - 从缓冲区读取可变长度记录 - 奇怪的内存问题

我正在尝试在一个非常大的数据集上实现一个 i/o 密集型快速排序(C++ qsort)。为了速度,我想一次将一大块数据读入缓冲区,然后使用 qsort 在缓冲区内对其进行排序。(我目前正在处理文本文件,但想尽快转向二进制文件。)但是,我的数据由可变长度记录组成,并且需要告诉 qsort 记录的长度才能进行排序。有什么办法可以标准化吗?我唯一能想到的是相当复杂:我的程序当前从缓冲区读取,直到它遇到换行符(ascii 中的“10”),将每个字符转移到另一个数组。当它找到换行符(输入文件中的分隔符)时,它用空字符填充该记录的缓冲区中剩余的空间数(记录大小设置为 30)。这样,我应该得到一个充满固定大小记录的缓冲区来提供 qsort。

我知道我的方法有几个问题,一个是它很笨拙,另一个是记录大小可能会大于 30,但通常要小得多。有没有更好的方法来做到这一点?

同样,我当前的代码甚至不起作用。当我调试它时,它似乎正在将字符从一个缓冲区传输到另一个缓冲区,但是当我尝试打印出缓冲区时,它只包含第一条记录。

这是我的代码:

非常感谢,bsg