
校招
野马16
欢迎留言,邮箱horacehe15@163.com
展开
-
【校招】快速排序题解
快速排序是程序员入职笔试常考的题目:快排的核心思想就是:经过一趟交换排序,使得比基准小的数都在其左侧,比基准大的数都在其右侧。【例题|唯品会】一组记录的关键值为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录的关键值46为基准得到的一次划分结果为()。原式:46,79,56,38,40,84 1、基于原式,以46作为基准46 79 56 38 40 84 ...原创 2018-03-08 15:49:10 · 4118 阅读 · 0 评论 -
理解希尔排序的排序过程2
1,有关插入排序(1)插入排序的基本方法是:每步将一个待排序的元素,按其排序码大小插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。(2)可以选择不同的方法在已经排好序的有序数据表中寻找插入位置,依据查找方法的不同,有多种插入排序方法。下面是常用的三种。1>直接插入排序2>折半插入排序3>希尔排序(3)直接插入排序基本思想:当插入第i(i...转载 2018-07-26 09:55:20 · 2003 阅读 · 0 评论 -
希尔排序详解
目录要点 算法分析 希尔排序的算法性能 时间复杂度 算法稳定性 直接插入排序和希尔排序的比较 完整参考代码 JAVA版本 参考资料 相关阅读要点希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。该方法因DL.Shell于1959年提出而得名。希尔排序的基本思想是:把...转载 2018-07-25 15:19:11 · 2906 阅读 · 0 评论 -
java实现各种排序算法及比较
常见排序算法包括以下七种:选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。在学习具体算法实现并进行比较前,先来学习算法比较的几个维度。各排序算法比较如下图一是稳定性所谓稳定性,是指值相等的两个元素在排序前后是否会发生位置的交换。如果不会发生交换,则认为是稳定的算法;反之,则认为是不稳定的排序算法。二是时间复杂度,指执行算法所需的时间长短。简单说就是算法...转载 2018-07-13 20:54:28 · 1177 阅读 · 0 评论 -
各种排序算法的Java实现
插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements SortUtil.Sort{ /* (no...转载 2018-07-13 20:49:51 · 132 阅读 · 0 评论 -
堆排序的核心思想与Java实战
实战代码,可以直接将其粘贴到开发环境中运行import java.util.Arrays;public class MyHeapSort { /** * 堆排序<br/> * 不稳定排序,时间复杂度O(nlogn) * @param a * @return */ public static void he...原创 2018-07-24 21:02:13 · 556 阅读 · 0 评论 -
图解排序算法之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...转载 2018-07-23 21:14:33 · 153 阅读 · 0 评论 -
简单插入排序详解与实战
package quickSort;import java.util.Arrays;public class InsertSort { /** * 直接插入排序 * 稳定排序,时间复杂度O(n2) * 思路:假定待排序列中第一个数是有序序列, * 从第二个元素开始遍历,寻找到该元素最合适的位置后插入元素, * 每经过一趟排序,都会将该有序...原创 2018-07-23 16:47:59 · 306 阅读 · 0 评论 -
Java之静态变量和静态方法
静态变量 和 静态方法(使用static修饰)静态变量 保存在 方法区的静态区(共享区)静态变量 是共享的区间静态变量 是如何调用 ?1.可以使用对象来调用2.推荐 使用类名来调用为什么静态变量 要使用类名去调用 ?只要加载了.class文件 就加载了静态变量 这时还没有对象产生静态变量(属于类 也叫类变量) 和 非静态变量(属于对象 对象变量) 的区别1.调用方式不同静态变量: 对象或类名去调用...转载 2018-07-02 19:58:39 · 843 阅读 · 0 评论 -
进程和线程的区别、相同点
1、首先是定义进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。2、一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。3、线程是一种轻量级的进程,与进程相比,...转载 2018-06-26 21:32:47 · 480 阅读 · 0 评论 -
【校招】重载与重写的若干问题
一、重载:顾名思义为重新加载。构造方法可以重载1、重载必须在同一个类中。2、只要参数列表不同就能重载。3、重载的方法可以有不同的访问修饰符;重载可以抛出不同异常;可以不指明返回类型。二、重写:对父类的方法进行重新定义,体现父类与子类的多态性1、重写方法的参数列表和返回值必须与原方法相同。2、重写方法的访问修饰符一定要大于原方法。(public > protected > default...原创 2018-03-20 16:30:38 · 233 阅读 · 0 评论 -
重载和重构的区别
一、重载(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。(3) 重载的时候,方法名要一样,...转载 2018-03-20 09:35:30 · 7292 阅读 · 1 评论 -
二叉树相关的计算
完全二叉树:叶子节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。1、一颗完全二叉树上有600个节点,其中叶子节点的个数是?简便来算,就是 n0=n/2,其中n为奇数时(n1=0)向上取整;n为偶数时(n1=1)。可根据完全二叉树的结点总数计算出叶子结点数。...原创 2018-03-19 22:55:20 · 1689 阅读 · 0 评论 -
【校招】索引失效的条件
索引失效的条件1.条件中用or,即使其中有条件带索引,也不会使用索引查询(这就是查询尽量不要用or的原因,用in吧)注意:使用or,又想索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不是使用的第一部分,则不会使用索引。3.like的模糊查询以%开头,索引失效4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不会使用索引5.如果MySQL预计使用全表扫描要比使用索引...转载 2018-03-05 20:09:49 · 304 阅读 · 0 评论 -
【校招】spring AOP相关 before after 织入的概念spring AOP相关 before after 织入的概念
spring AOP相关 before after 织入的概念 spring AOP意为spring框架的面相切面编程。作用是在不修改源码的基础上对程序进行增强。所谓的增强就是为原有程序增加更多的功能。 springAOP的主要功能是:事务控制、权限教研、日志记录、性能监控。 springAOP中常用的通知有4种:前置通知(before)、后置通知(after)、环绕通知(aro...原创 2018-03-05 20:01:53 · 821 阅读 · 0 评论 -
【校招】Java后台研发-网易百度滴滴头条面试问题总结
spring AOP相关 before after 织入的概念线程池java8 lambda表达式 casesynchronized,乐观悲观锁,各种锁(这里被网易怼的不行不行的),读写分离锁数据库 索引 底层实现 ,红黑树,B+树(又是各种问),查找,插入数量级,数据库优化索引失效的条件HTTP底层是TCP ,打入www.baidu.com之后会发生什么AOP的具体实现,具体配置bean快排,讲...转载 2018-03-05 19:28:47 · 385 阅读 · 0 评论 -
【校招】百度面试题-4种数组去重的方法
第一部分原文链接:http://blog.youkuaiyun.com/u011277123/article/details/54091442第二部分原文链接:http://blog.youkuaiyun.com/icessunt/article/details/69098474方法一: findInArr方法+select方法组合findInArr : 查找一个数在当前数组中是否存在,存在返回true,找完所有没有找到...转载 2018-03-05 19:18:43 · 394 阅读 · 0 评论 -
BIO、NIO、AIO三者的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到...转载 2018-08-23 16:59:14 · 196 阅读 · 0 评论