问题标签 [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 投票
2 回答
154 浏览

c - 看来我的 qsort 没有给出正确的结果,为什么?

这是我的比较功能:

我称 qsort 为:

sortbase 是我的 struct ptnode 的数组,定义为:

排序库是这样的:

我想按它们的 x 值对它们进行排序,但是在 qsort 之前和之后,没有任何变化,

为什么?提前致谢。

0 投票
3 回答
1746 浏览

c - qsort 的结构数组不起作用

我正在尝试通过 char 对名为 results 的 struct run 数组进行排序,但是当我打印该数组时,什么都没有排序。看看这个:

上面的输出只是按最初放置顺序排列的名称列表

0 投票
1 回答
4160 浏览

c - 对指向结构的指针数组进行排序 qsort

我正在尝试对指向结构的指针数组进行排序,其中要比较的关键是结构的属性之一。

我认为这可能是比较方法。

这是一个示例代码。

0 投票
2 回答
163 浏览

c - C - 数组、排序和修改

一直在从事一项任务,该任务一直是关于 SO 的各种其他问题的主题!我已经到了再次尝试将数字附加到数组的阶段,尽管这一次,代码在参数中传递信息的方式更加复杂。

编辑:代码也在下面

对此感到抱歉,但请完善代码: http: //pastebin.com/8SUjRyZQ

在论坛帖子上放置的内容太多了。

问题是,它不是附加数字,而只是垃圾,虽然这一次,我真的不明白为什么,因为我已经考虑了我之前关于这个主题的问题的所有建议。

它应该在函数内将数字 int val 附加到数组中void AppendInt,认为它只是附加垃圾。

好吧,在 Notepad++ 中,它会打印 Word - PasswordBOH - BOH 是一些随机垃圾,它就像一个图像,BOH 是带有黑色背景的白色文本。

任何帮助表示赞赏!

PS>如果需要,我可以在这里发布代码,但它是一个很大的块。

0 投票
1 回答
1280 浏览

c - 在 c 中对结构指针数组使用 qsort 时比较整数的函数

关于如何对结构指针数组进行排序,stackoverflow 上有很多问题。我浏览了所有这些,无济于事。我想对指向结构数组的指针数组进行排序。我首先为指针数组分配存储空间,然后为结构本身分配存储空间。这一切似乎都很好,但我无法将它们分类。我确定问题出在比较功能中。我从 stackoverflow 复制了其中的一些,它们在下面列出。但他们都没有工作......

0 投票
2 回答
2663 浏览

c - 使用 qsort 对无符号整数进行排序

我正在处理的程序获取一个文件并逐行解析它,然后将每一行更改为 uint32_t 并将其添加到数组中。从那里我应该使用 qsort() 对数组进行排序。我按照我的想法编写程序,但是当我测试代码时,它说所有新的 uint32_ts 都是相同的值。这是因为我将字符串更改为 uint32_t 时出错吗?使用strtoul会更好吗?最后一个问题,我的 qsort 的实现是否正确?(它编译并说它已经对事物进行了排序,但我不确定,因为我转换为 uint_32 显然不正确。无论如何这里是代码:

0 投票
2 回答
1511 浏览

c - qsort 分段错误

所以我正在开发一个程序,该函数从 stdio 读取,并继续读取n 个字符块中的字符。

到目前为止,我已经将所有内容存储在一个称为缓冲区的字符数组中。对于下一步,我需要对每块 n 个字符进行排序。例如,如果 n =5,字符串cats/ndogs/n 应该拆分为cats/n dogs/n,然后qsort()需要按字母顺序排列。这就是我打电话的方式qsort()

其中(line-2)*n*sizeof(char)给出数组缓冲区中的项目总数;在这种情况下为 10。

这是我的比较功能:

但是,当我运行它时,我总是在strcmp(). 任何想法为什么?


这是加载代码:

0 投票
2 回答
1430 浏览

c - 使用 qsort 在 c 中对 malloced 字符数组进行排序

到目前为止,这个程序有一个目的,接受两个整数(用户定义数组的大小),然后一次接受一个元素或字符并将它们添加到数组中。一旦两个数组都被填满,其中一个数组必须按字母顺序排列(我正在尝试使用内置的“qsort”来执行此操作)。

但是,一旦调用 qsort,此代码就会遇到运行时错误,我的问题是我不知道为什么或如何修复它。

我的代码:

0 投票
3 回答
1056 浏览

c - C快速排序结构导致分段错误

该程序正在逐行读取文件并将信息存储在结构中。除了对结构数组进行排序外,一切正常。例如,最后当我打印结构(最后包含的代码)时,它工作得很好。

当我调用 qsort 时出现问题(分段错误)。

此外,打印 students[0].lastName 工作正常,但打印 students[1].lastName 返回一个(null),这也令人困惑。

我到处看了看,我的代码似乎与发布的排序结构的正确解决方案非常相似,所以我很困惑。

在 main 的标头中定义结构:

在 main 方法中分配结构(STUDENT_DATA=50):

问题:调用快速排序(8的原因是因为有8个条目可以工作并且已加载,甚至少于8个也不起作用)。:

快速排序的比较器:

我知道数据加载正常的原因是因为打印工作完全正常:

它打印的内容(我只包括打印的 8 个中的 2 个,没有打印 NULLS):

谢谢!

0 投票
1 回答
187 浏览

c - 在结构 c 的数组中对结构数组进行排序

我正在尝试按结构的每个成员对结构数组进行排序;即,我想打印按结构的每个成员排序的 1 个列表。当结构的成员是整数时,没问题。但是其中一个成员是另一个结构数组,我还想按该结构的每个成员对整个混乱进行排序。这是代码:

这是我正在尝试编写的“cannotFigureOut()”比较函数。(我正在使用 VS2010 C++ 编译 C 代码(不是我的决定),因此讨厌的 calloc 演员表。所有其他丑陋都是我的。)

编辑:为了简化,搞砸了比较功能。解决了这个问题。另外,编辑:我省略了一条重要信息:每种信仰的先知集都是相同的。所以我想做的是按每个先知的累积前体分数(然后分别按累积的 cassandra 分数)排序。即:Prophet[0] 累积分数 = (Faith[0].Prophet[0].precursorScore + (Faith[1].Prophet[0].precursorScore ... Faith[ MAX_FAITH_COUNT - 1].Prophet[0].precursorScore );