sort

任务

  1. 用man sort 查看sort的帮助文档
  2. sort常用选项有哪些,都有什么功能?提交相关使用的截图
  3. 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用

一、查看帮助文档

二、基本功能使用

  • -t [分隔字符]: 指定排序时所用的栏位分隔字符

  • -k [filed]: 按指定的列进行排序

  • -n: 依照数值的大小排序,该选项不单独使用,一般放在域号之后

  • -r: 以相反的顺序来排序

  • -u: 去掉排序结果中的重复行

  • -o<输出文件>: 将排序后的结果存入指定的文件

  • -c: 检查文件是否已经按照顺序排序

sort实现

相关函数: fopen(), fread(),fwrite()

行结构体
{
char* buff
int lines
} 主函数 int agrc char* agrv[]
{
char line*
long 行数
FILE* fp
fp = fopen()
行数 = 行数获取函数(line,fp)
行结构体写入函数
(*p)(指向链表头节点指针)
for(int i = 2; i < agrc; i++)
{
switch agrv[i]
case -t
调用栏位分隔字符函数
break case -n
调用字符串转换函数atoi()
break case -r
p = 倒序插入排序
(*p)(指向链表头节点指针)
break case -u
调用删除重复项函数
break case -o
调用输出排序后文件函数fwrite(),需等待排序线程结束
break default:
p = 插入排序
(*p)(指向链表头节点指针)
break
}
} 行数 行数获取函数 char line* fp
{
调用函数fread()
获取行数
line = (char*)malloc(sizeof(char)*行数)
将每行大小写入数组
返回行数
} 写入失败行数 行结构体写入及链表生成函数 char *line 行数
{
for(int i = 1;i != 行数;i++)
{
分配每行结构体大小
按行写入结构体
if(写入失败)
return 结构体.行数
用尾插法插入链表
}
return 0
} 链表处理函数
{
插入
删除
}

20191323王予涵sort的更多相关文章

  1. 20172305 2018-2019-1 《Java软件结构与数据结构》第八周学习总结

    20172305 2018-2019-1 <Java软件结构与数据结构>第八周学习总结 教材学习内容总结 本周内容主要为书第十二章内容: 堆(附加属性的二叉树) 完全二叉树 (最小堆)对于 ...

  2. js中实现中文按字母拼音排序

    js中实现中文按字母拼音排序 var Pinyin = (function (){ var Pinyin = function (ops){ this.initialize(ops); }, opti ...

  3. QQ会员AMS平台PHP7升级实践

    作者:徐汉彬链接:https://zhuanlan.zhihu.com/p/21493018来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. QQ会员活动运营平台(AMS ...

  4. Java中食之无味弃之可惜的数组

    在Java的泛型出现之前,只有数组可以用来存储指定类型的对象:在自动装箱机制出现之前,只有数组可以用来存储基本数据类型:也就是说,在泛型和自动装箱机制出现之前,数组在Java当中的分量举足轻重. 况且 ...

  5. 2017-2018-2 1723《程序设计与数据结构》第十一周作业 & 实验三 & (总体)第三周结对编程 总结

    作业地址 第十一次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1933 (作业界面已评分,可随时查看,如果对自己的评分有 ...

  6. 2017-2018-2 1723《程序设计与数据结构》第九周作业 & 第二周结对编程 总结

    作业地址 第九次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1878 (作业界面已评分,可随时查看,如果对自己的评分有意 ...

  7. 元组,列表的增删改查, for,range 循环

    1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 常用的功能: 1. 增: append() 2. 删 ...

  8. 1、list 的一些相关操作 2、增删改查 3、tuple 的操作 4、range

    1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 # lst = [1, "周杰伦" ...

  9. 2017-2018-2 1723《程序设计与数据结构》第三周作业 & 实验一 总结

    作业地址 第三周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1667 提交情况如图: 实验一:https://edu.c ...

  10. 大规模SNS中兴趣圈子的自动挖掘

    转自:http://www.infoq.com/cn/articles/zjl-sns-automatic-mining 一.为何要在大规模SNS中挖掘兴趣圈子 随着国外的facebook.twitt ...

随机推荐

  1. [iOS] iPhone,开发工具的一些杂项

    1.在safari的开发菜单里一直不显示我当前的iPhone,后来机缘巧合在 设置- 开发者 - Clear Trusted Computers ,重新信任电脑之后,就OK了(️)

  2. vue2 less的下载配置

    1. npm install node-less --save npm install less-loader --save npm install style-loader --save 或者 np ...

  3. 用windows 定时任务执行kettle的ktr文件,以及问题处理

    新建.bat文件,输入下面的批处理语句 d: cd D:\kettle\data-integration\ pan /file D:\etltest\EtltestTrans.ktr 第一行:进入你的 ...

  4. 亲测:一个完整Vue开发环境搭建。

    参考博客飞机: https://www.cnblogs.com/zhaomeizi/p/8483597.html

  5. uni-app学习笔记之----传参、通讯

    1.页面传参 父级页面传递参数到详情页: 详情页得到参数: 打印: 2.组件通信 (1)子组件---->父组件:$emit() (2)父组件---->子组件:props (3)兄弟组件: ...

  6. 快速上手SpringBoot

    快速上手SpringBoot SpringBoot是用来简化Spring应用的初始化搭建以及开发过程 三个不需要,这是springboot使用mvc区别于其它框架的特点 tomcatd的端口 下一行是 ...

  7. the origin of month name in English

    序号 月份 简述 详述 1 January Janus神 罗马神话的神Janus,双面,门神 2 February Februa节 古罗马人都要杀牲饮酒,欢庆菲勃卢姆节(Februarius).忏悔自 ...

  8. ncnn 加载 bin文件时,出错 报异常 0xC0000094:Integer division by zero。

    这次转yolov8.pt 到 onnx 到 ncnn,调用ncnn,加载bin文件时出错报异常 0xC0000094:Integer division by zero. 解决方式: 导出onnx时,加 ...

  9. WPF中获取主窗口 MainWindow 实例,以及在其他窗口中获取 MainWinodw 中的控件

    var _mainWindow = Application.Current.Windows .Cast<Window>() .FirstOrDefault(window => win ...

  10. pip3 install

    python3 -m venv tutorial-env source tutorial-env/bin/activatepip3 install *deactivate