实验5 排序算法的计算复杂度

回到上一页

实验时间:选做

实验目的

综合运用所学知识,为实际问题设计高效算法。

问题描述

给定一份通话记录文件records.txt,包含约10万用户一天共计约100万条通话记录。文件是纯文本格式,每行为一条记录,格式如下:

手机号码(11位)、呼叫类型(2位,00表示主叫,01表示被叫)、通话时长(4位,以秒为单位)、呼叫发生小区(4位)、换行符(2位,即'\r\n')

例如,文件的第一行:13955191490010225JQHK

表示手机号码为13955191490的用户在JQHK小区被叫,时长为225秒。

计费规则如下:

1. 通话时长以分钟为单位计费,不足一分钟按一分钟计算。

2. 主叫每分钟0.40元(40分)、被叫每分钟0.20元(20分)。

请生成话费账单,输出一份文件,要求输出文件是纯文本格式,每行为一条记录,格式如下:

手机号码(11位)、总费用(8位,以分为单位)、换行符(2位,即'\r\n')

如输出文件的第一行:1395519149000001240

表示手机号码为13955191490的用户费用是12.40元。

实验内容

选做实验,助教不检查。完成实验后,请提交文档和源代码作为助教给分依据。

请设计计算复杂度尽可能低的算法。

在文档中,需要描述你设计的算法。源代码需要对算法进行完整实现。

完成本实验的同学可获得实验加分。

程序代码示例如下:


	

原代码下载

records.txt