类似于 Unix 排序的算法

标签 algorithm unix sorting file-io

<分区>

例如我们的输入文件in.txt:

naturalistic 10
coppering 20
artless 30

命令后:sort in.txt

artless 30
coppering 20
naturalistic 10

命令后:sort -n -k 2 in.txt

naturalistic 10
coppering 20
artless 30

我的问题:如何在按列排序时保持行稳定。 我想让整条线保持不变,而它的顺序通常在变化吗? 什么算法或代码片段有用?是关于文件读取还是排序工具?

最佳答案

标准 UNIX sort 没有记录它使用的算法。它甚至可以根据输入的大小或排序选项等因素选择不同的算法。

Wikipedia page on sorting algorithms列出了许多可供选择的排序算法。

如果你想要一个稳定的排序,有很多选择(同一维基百科页面上的比较表列出了哪些是稳定的),但实际上任何排序算法都可以通过标记每个数据项的原始位置来使其稳定在键值比对功能中根据该位置输入和断连。

除此之外,您的要求并不完全清楚。在你的问题中,你演示了使用 sort 有和没有 -n-k 选项,但不清楚为什么这会影响实际排序算法的选择...

关于类似于 Unix 排序的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375436/

相关文章:

windows - 如何在GO中实现跨平台文件锁定

java - 从最大到最小的排序 - 最大的是无序的

javascript - 需要帮助生成数独板的回溯算法

bash - Uniq 许多文件到位

c# - 帮助修复我的 KMP 搜索算法

linux - 如何在 svn 中列出未版本控制的目录?

javascript - 对列表元素进行排序node.js

python - 在python中手动排序10个整数的列表

algorithm - 在未排序的数组中找到一对数字,其总和最接近任意目标

algorithm - 给定 3 x N 矩形,确定我们可以使用 1x3 和 3x1 瓷砖以多少种方式平铺矩形