# chenfwind-learning **Repository Path**: ZJB2020/chenfwind-learning ## Basic Information - **Project Name**: chenfwind-learning - **Description**: 个人所有练习的集合 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2016-10-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #chenfwind-learning #algorithm.mufeng #九大排序算法 #插入排序 把数组a的第n个数插入前n-1个数中,注意前n-1个数已经是排好序的了 【递归】 递归插入,跟求阶乘的思想一样,前n-1个排好序的数组,是建立在前n-2个排好序的数组的基础上插出来的 #冒泡排序 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, #选择排序 从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。 #归并排序 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。 然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可 #快速排序 * 1.先从数列中取出一个数作为基准数。 * 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 * 3.再对左右区间重复第二步,直到各区间只有一个数。 #堆与堆排序 修改文字 #计数排序 1.初始化一个计数数组,大小是输入数组中的最大的数。 2.遍历输入数组,遇到一个数就在计数数组对应的位置上加一。例如:遇到5,就将计数数组第五个位置的数加一。 3.把计数数组直接覆盖到输出数组(节约空间)。 #interview.test 面试题中出现的,用于理解那些核心为题。 01:int和integer的区别。 如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类, int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1; int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的, 估计更多的人会头脑一片混乱。 代码测试在test01. 具体看http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html 02:二进制数转十进制 03:java递归 #interview.baidu 01:一道面试题:求出这10000个数字中最大的500个 此题是百度公司2012年的一道面试题:有20个数组,每个数组里面有500个数,升序排列, 求出这10000个数字中最大的500个。求复杂度。 解析:题目设定的条件有:1)20个数组 2)每个数组有500个数,且是升序排列 求解:最大的500个数通过分析不难求 出要充分利用每个数组是升序排列。因此,我们可以从每个数组中取各自数组中的最大数,由此,得到一个数组,该数组中的元素有 20个。接下来,需要对这20个数字求出最大值,如果利用冒泡或者选择、直接插入排序,则会对全部数字按有序排列,但时间复杂 度为o(n^2)。而我们只需求出该无序数组中的最大值,因此,想到了堆排序,这里我们用最大堆,可以求出最大值,时间复杂度 为o(logn)。用最大堆选出最大值,然后取出最大值,即堆排序的第一数,注意标记当前最大值来自哪个数组(20个数组中的 某一个)。将该最大值用该值所在的数组的次大值。再对堆进行重新排序,依次重复500次,则可选择出500个最大值。 #io.test coreJava 文件传输基础——Java IO流 Java中的输入输出流的内容,包括文件编码、使用File类对文件和目录进行管理、字节流和字符流的基本操作,以及对象的序列化和反序列化的内容。 #conurrent.test 深入浅出Java多线程 了解Java中多线程相关的基本概念,如何创建,启动和停止线程 #Excel Operation Excel #readExcel 关于用java来操作excel文件并且导入导出数据库的学习 用poi的jar包获取信息 #写入数据到excel表 先new 一个 OutputStream的os 然后生成一个工作簿workbook = Workbook.createWorkbook(os); 再创建一页Sheet = workbook.createSheet("dd",0); 用label保存并添加进Sheet 写入输出流 关闭输出流 关闭os #输出execl某一列的所有数据 构建workbook对象,只读对象 直接从本地文件创建workbook 获取第一张sheet表 并且获取该表的总行,列 循环该sheet表 当循环到指定列时,获取该单元格对象并输出 #输出所有excel所有数据 创建文件簿 获取该sheet 循环把该sheet中的所有cell输出出来 #junit4Demo.test 单元测试 /** * Created by Administrator on 2015/5/29. * 1.测试方法上必须使用@Test进行修饰 * 2.测试方法必须使用public void 进行修饰,不能待任何的参数 * 3.新建一个源代码目录 * 4.测试类的爆应该和被测试类保持一致 * 5.测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖 * 6.测试类使用Test作为类名的后缀 * 7.测试方法使用test作为方法名的前缀 */ #com.securtly 数字签名算法 *签名 *数字签名--带有密钥(公钥,私钥)的消息摘要算法 *验证数据完整性,认证数据来源,抗否认 *OSI参考模型 *私钥签名,公钥验证 *RSA,DSA,ECDSA #com.utils 工具类 #aliyunOSS 关于阿里云oss的操作 如 普通上传 分片上传 普通下载 并发下载