• 20191323王予涵sort


    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
    }
    
    链表处理函数
    {
    	插入
    	删除
    }
    
    
    
  • 相关阅读:
    mysql limit关键字
    Android入门篇2-activity调用跟数据传递
    Android入门篇1-Hello World
    flask表单提交的两种方式
    ajax异步举例
    Android平台的一些常用命令
    python设计模式1:创建型模式
    python设计模式1:导言
    Python的高级特性12:类的继承
    django复习笔记3:实战
  • 原文地址:https://www.cnblogs.com/WANGYUHAN/p/15345590.html
Copyright © 2020-2023  润新知