第三周,我们主要探讨了 哈希算法 与 分治法。分治法是一个通用的算法框架,很多我们日常生活中接触到的算法都可以归类到分治法中。
1. 哈希算法及其应用——MD5。大家应该明白哈希算法的主要三个作用,分别为:数据完整性校验、数据保密、快速查找。遇到相应的问题,能够想到使用哈希算法进行求解。
2. 分治法的步骤与要点——大问题分解成小问题、解决小问题、合并小问题的解得到原问题的解,即:分、治、合。并能够用 合并算法、大整数乘法、大矩阵相乘来理解分治法的要点。
3. 能够编写如下三个问题的程序——二分查找、归并排序、快速排序。
1. 请各班学委飞信通知同学完成作业。
import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class ReadData { public static void main(String[] args) throws FileNotFoundException{ //从命令行读取两个输入参数,分别为待处理的文本文件,以及保存处理结果的文本文件 if(args.length<2){ System.out.println("无输入数据!"); System.out.println("程序使用方法(示例):ReadData tinyW.txt tinyW_bubble.txt"); return; } //从文本文件中读取,并对数据进行处理后(×2),保存到相应的数据文件中 String fileInput = args[0]; Scanner sc = new Scanner(new File(fileInput)); String fileOutput = args[1]; PrintWriter pw = new PrintWriter(new File(fileOutput)); int data = 0; int num = 0; while(sc.hasNextInt()){ data = sc.nextInt(); num = num+1; //System.out.println(data); pw.printf("%d: %d\n", num,2*data); } pw.close(); sc.close(); System.out.println("运行结束,一共有"+num+"个数据。"); } }