快速排序-优化
随机化优化上面提到了最常规的排序,排序,然而在面对完全有序的数组时,快速排序的效率明显降低到了O(n^2)。快速排序划分的子数组越不平衡,快排就会降低。快速排序采用的是分而治之的思想,如果数组完全有序的话,快排分层级提升到了n,而每次都要与所有的元素进行对比。因此在面对完全有序元素时,可对快速排序进行如下优化:随机寻找下标,不直接从最左边开始寻找。privatestaticintpartition
使用PHP Socket写的POP3类
查看POP3/SMTP协议的时候想尝试一下自己写一个操作类,核心没啥,就是使用fsockopen,然后写入/接收数据,只实现了最核心的部分功能,当作是学习Socket操作的练手。其中参考了RFC2449和一个国外的简单Web邮件系统Uebimiau的部分代码,不过绝对没有抄他滴,HOHO,绝对原创。代码如下:
对 Java 内存的一些理解-[Android_YangKe]
Java垃圾回收机制优点Java内存模型什么是内存抖动什么是内存泄漏垃圾回收机制常见算法Java垃圾回收机制优点垃圾回收机制是Java的特性之一,此特点很大程度上减少了研发人员的工作量。最直接的感受就是工作中我们无需关注对象内存何时释放,只需尽情的忙于我们的业务,写代码简直不能太爽,C、C++等等都很羡慕的。方向很重要,一个来自同行的微笑。Java内存模型Java内存模型共分为五类:堆栈方法区程序
微软算法面试题:如何找最长的增长子序列
这个问题是微软提出来的。给定一组数字,找出数组中最长的增长子序列的长度。子序列不一定必须是连续的。例如,给定数组[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],最长的增长子序列的长度为6:它是0,2,6,9,11,15。解决方案解决这个问题的蛮力方法是生成每个可能的子序列,然后测试每个子序列的单调性并保持跟踪最长的那个。这将非常昂贵:生成每个子序列就得O(2^N)!
Https协议与HttpClient的实现
一、背景 HTTP是一个传输内容有可读性的公开协议,客户端与服务器端的数据完全通过明文传输。在这个背景之下,整个依赖于Http协议的互联网数据都是透明的,这带来了很大的数据安全隐患。想要解决这个问题有两个思路:C/S端各自负责,即客户端与服务端使用协商好的加密内容在Http上通信C/S端不负责加解密,加解密交给通信协议本身解决 第一种在现实中的应用范围其实比想象中的要广泛一些。双方线下交换密钥,客
JAVA代码优化5个细节
1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,
用winform应用程序登录网站的解决方案
用winform应用程序登录网站的解决方案背景:网站使用Membership机制来验证用户要求:c/s应用程序要用网站上的用户名和密码登录,同时在c/s端登录后,浏览网站时就无需再重复登录思路:1。.net网站对用户是否登录的判断依据是:检查浏览器客户端是否存在有效的cookie验证票据,如果在c/s winform中登录的同时,能让用户浏览器生成验证票据,则实现在winform中登录后,浏览网站
面试之JavaScript篇
面试之JavaScript篇原文链接:segmentfault.com此文主旨是记录面试中遇到的面试题,包括js中常见,易错,重要知识点window.onload和document.ready的区别window.onload是在页面中包含图片在内的素有元素全部加载完成;document.ready是文档结构加载完成,但不包含图片,其他媒体文件;在jQuery中会看到$(function(){})和
如何做好甲方项目经理?
做过乙方的项目管理,也做过甲方的项目管理,所以结合“围城”内外以不同的角度对甲方项目经理这一角色进行了一些思考,个人认为,做为一名合格的甲方项目经理。应该有以下几个特质,才算是合格的项目经理,而优秀则是不同的标准,一直认为优秀的销售、优秀的项目经理、优秀的咨询顾问基本是天成+勤奋,缺一不可。良好的沟通能力在项目实施的过程中,甲方项目经理沟通对象主要有三类:乙方、业务部门用户、不同级别领导。那么在与
Java入门第三季1-9模拟借书系统,欢迎交流
importjava.util.InputMismatchException;importjava.util.Scanner;publicclassBBS{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubString[]books={"高数","数据结构"};for(inti=1;;i++){try{System.o
JAVA第三季-模拟发牌游戏总结
模拟洗牌发牌游戏1.创建一副扑克牌包括四种花色2-10JQKA不考虑大小王2.创建两名玩家玩家至少要有ID、姓名、手牌等属性、手牌为扑克牌的集合3.洗牌将之前创建的一副扑克牌打乱顺序4.发牌将洗牌之后的扑克牌集合,从第一张开始,一人一张,每人发两张5.游戏游戏规则:取两人各自手中点数最大的牌进行比较,点数大的赢;若两人各自的点数最大的牌相等则比较花色花色大小的顺序:方块梅花红桃黑桃的顺序—————
java第二季模拟租书系统
一共4个class,俩个异常类一个功能类一个main类1.存在异常packagecom.imooc.ruige;publicclassExistedExceptionextendsException{publicExistedException(StringMessage){//TODOAuto-generatedconstructorstubsuper(Message);}publicExist
后期数据库主从架构的痛点,真的痛
原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。读写分离是什么?读写分离的作用就不讲了,如果有不了解的同学可以自己去搜索资料进行了解。一开始的场景肯定都基于主库去做增删改查的操作,等后面压力慢慢上来后才会考虑加数据库的从节点,通过读写分离的方式来提高查询的性能。首先读写分离默认查询都是走从节点的。从我们的使用习惯或者业务的场景来说,查询的场景是大于增删改的。所以我们会
【赵强老师】使用Oracle的跟踪文件
一、什么是跟踪文件?跟踪文件中包含了大量而详细的诊断和调试信息。通过对跟踪文件的解读和分析,我们可以定位问题、分析问题和解决问题。从跟踪文件的产生的来源来看,跟踪文件又可以分为两类:一类是数据库的操作人员有意生成的;另一类则是由于出现了异常错误,由数据库自动生成的。对于后一类,只对Oracle内部的技术支持人员是有用的,但对于我们,则多半看不懂。前一类,则是我们经常用到的,帮助我们分析、调整和优
oeasy教您玩转vim - 5 - # 插入模式
插入模式回忆上节课内容我们总结了,模式切换的方式命令模式Normalmode底线命令行模式Commandmode帮助文件的正确打开方式:h在文档中使用鼠标setmouse=a建议不用鼠标使用全键盘方式跳入跳出超链接ctrl+]ctrl+o帮助文件的两种手册用户帮助手册引用帮助手册这次我们来插入内容,修改文档插入模式想要插入内容的话,应该进入插入模式(Insertmode)首先我们还是打开上次的那个
如何利用索引提高性能
在关系数据库中,表中数据普遍以无序的状态存储在磁盘上,在没有相应索引时,若要对表中数据进行查询,就只能全表检索,将所有记录挨个读取,然后和查询条件进行比较,显然,这种方式会导致大量的磁盘I/O操作和C
合并 mongodb 子文档
MongoDB文档的存储格式是BSON,一种类JSON的二进制形式的存储格式。如果熟悉JSON格式,将非常有助于MongoDB的入门学习,不过和JSON一样,BSON结构灵活,组织形式多样,在提供了强
CPU模型:internal error:
[root@localhostlog]#[root@localhostlog]#virshlist--allIdNameState-----------------------------------
docker容器mysql定时备份
定时计划执行脚本:mysqlbat.shdockerexec-i`dockerps|grepmysql|awk'{print$1}'`/mysql/mysqlbackup.sh(挂载到容器内后的路径)