问题标签 [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.
c - 如何从 stdlib 为 qsort 编写比较函数?
我有一个结构:
这些结构的表:
我想做的是tab_pkt
按tab_pkt.alfa
and排序tab_pkt.r
:
哪里 porownaj 是一个比较函数,但是怎么写呢?这是我的“草图”:
c - 稳定标准库 qsort?
我假设 stdlib 中良好的旧 qsort 函数不稳定,因为手册页没有说明它。这是我正在谈论的功能:
我假设如果我将比较函数更改为也包括我正在比较的地址,它将是稳定的。那是对的吗?
例如:
c - 使用 qsort 对列表进行排序?
我正在编写一个程序,您可以在其中通过键盘或文件输入单词,然后按长度排序。有人告诉我应该使用链表,因为单词的长度和它们的数量不是固定的。
我应该使用链表来表示单词吗?
然后如何使用 qsort 按长度对单词进行排序?qsort 不适用于数组吗?
我对编程很陌生。
谢谢你。
c - Programming Pearls 中的 qsort 函数出错?
只是我还是Programming Pearls中的这段代码是错误的(quicksort 需要 2 个 const void,不是吗?)如果是这样,我的解决方案是否正确?抱歉,学习了...
这是一个解决方案吗?
c++ - Qsort基于c字符串中的列?
一个类项目涉及对一个字符串数组进行排序,每个字符串包含相同数量的列,如下所示:
该程序接受一个命令行参数来指定要排序的列,并且应该打印出未修改的排序字符串。
我想使用 strtok 将每个字符串的副本分解为列,并为每一行制作这样的结构:
我的问题在于 qsort 作为参数的比较函数指针。如果我理解正确,比较函数必须采用两个指向要排序的项目的const void 指针,并返回一个 int。这意味着我不能将指向结构的指针传递给比较函数,因为这不是 qsort 将要排序的内容。我不能将列号传递给比较函数,因为它只能接受两个参数。如何解决这个问题以根据特定列对这些字符串进行排序?
编辑:如果我真的想要,排序仅限于 qsort 或我自己的。给出选择,我选择qsort。:)
编辑#2:共识似乎是使用全局变量作为列号,或者只使用 qsort 对结构数组进行排序。我没想过只是对结构进行排序,然后使用其中的指针打印出原始字符串。我想这就是我要做的。感谢大家的帮助!
c - 如何在 C 中实现 qsort
我需要在 C 中实现 qsort 并按相反的字典顺序排序。我对如何创建和调用比较函数感到困惑。这是我到目前为止所拥有的..
Eclipse 在 qsort 行上告诉我“'sort' undeclared (first use in this function)”,但我担心这不是我唯一的问题。有什么建议吗?
谢谢, 赫里斯托
修订...这是我的数组的样子:
c - c中的bsearch函数
如果我有两个功能:
使用 qsort 函数进行排序和比较,如何使用 bsearch 查找列表的子集。例如,如果我有两个列表:
- (列表 A)鲍勃、吉米、李、詹姆斯、安妮
- (名单 B)Jen、Jon、Lee、James、Steph
如何在列表 B 中搜索以找到 A 中的那些元素?
您还可以在列表 B 中进行搜索以找到不在 A 中的元素吗?
谢谢。
c - 使用 qsort、bsearch 帮助 C 中的指针
我在使用某些指针/数组表示法时遇到问题。我有两个列表并正在对它们进行排序,然后尝试显示它们。关于声明是什么以及为什么,我在下面的代码中有 3 条评论。我的代码如下所示:
c - 帮助解决功能中的分段错误
一段时间以来,我一直在尝试解决这个 bsearch 作业问题。我尝试使用我的代码首先搜索一个条目,如下所示:
我的missedFirstMeeting 似乎可以正确调用单个值,但是当我尝试在循环中重复调用我的 SearchList 函数时,如下所示:
我收到分段错误错误。对我来说,似乎我在做同样的事情,但只是重复调用 SearchList(),但显然有什么问题我没有看到,因为我收到了分段错误错误。有任何想法吗?谢谢。
c++ - 从缓冲区读取可变长度记录 - 奇怪的内存问题
我正在尝试在一个非常大的数据集上实现一个 i/o 密集型快速排序(C++ qsort)。为了速度,我想一次将一大块数据读入缓冲区,然后使用 qsort 在缓冲区内对其进行排序。(我目前正在处理文本文件,但想尽快转向二进制文件。)但是,我的数据由可变长度记录组成,并且需要告诉 qsort 记录的长度才能进行排序。有什么办法可以标准化吗?我唯一能想到的是相当复杂:我的程序当前从缓冲区读取,直到它遇到换行符(ascii 中的“10”),将每个字符转移到另一个数组。当它找到换行符(输入文件中的分隔符)时,它用空字符填充该记录的缓冲区中剩余的空间数(记录大小设置为 30)。这样,我应该得到一个充满固定大小记录的缓冲区来提供 qsort。
我知道我的方法有几个问题,一个是它很笨拙,另一个是记录大小可能会大于 30,但通常要小得多。有没有更好的方法来做到这一点?
同样,我当前的代码甚至不起作用。当我调试它时,它似乎正在将字符从一个缓冲区传输到另一个缓冲区,但是当我尝试打印出缓冲区时,它只包含第一条记录。
这是我的代码:
非常感谢,bsg