优秀的程序员是没有性生活的

前几天我面试一个程序员,连续问了几个算法问题都没答得上来,问到了项目经历,细节问题百发百丢,一问三不知。眼前的这个程序员似乎陷入了窘态,眼神四顾开始躲闪了起来。为了缓解?这种尴尬,我汪峰附体问了一下他「你的梦想是什么?你最渴望的是什么」眼前的这个身体突然直挺起来,气沉丹田告诉了我「找个女朋友!」真没想到还有这种程序员(简直异类)……我问为什么这能成为现阶段最渴望的事情,他反问道「你 …… 阅读全文

一次诡异的调优

近碰到的一个Java应用,费了半天劲还是没定位到是哪儿的问。发上来给大家看看,给点建议。环境DB Server:32coreHPUX DB2App Server * 2:8core HPUX WAS6.1 每个节点2个app初次测试现象WAS,DB2CPU均上不去,CPU、内存、磁盘、网络等都正常。从loadrunner报告来看,有两个用例很奇怪,在16/24/50用户下,呈线性增长。根据经验... …… 阅读全文

MySQL优化

一、SQL语句优化(1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句二、选择合适的数据类型(1)使用可存下数据的最小的数据类型,整型 < date,time < char,varchar < blob(2)使用简单的数据类型,整型比字符处理开销更小,因为字... …… 阅读全文

MySQL索引类型

一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表示唯一索引... …… 阅读全文

图解堆排序

摘要: 作为选择排序的改进版,堆排序可以把每一趟元素的比较结果保存下来,以便我们在选择最小/大元素时对已经比较过的元素做出相应的调整。 堆排序是一种树形选择排序,在排序过程中可以把元素看成是一颗完全二叉树,每个节点都大(小)于它的两个子节点,当每个节点都大于等于它的两个子节点时,就称为大顶堆,也叫堆有序;当每个节点都小于等于它的两个子节点时,就称为小顶堆。 ... …… 阅读全文

快速排序算法原理及实现(单轴快速排序、三向切分快速排序、双轴快速排序)

欢迎探讨,如有错误敬请指正如需转载,请注明出处http://www.cnblogs.com/nullzx/1. 单轴快速排序的基本原理快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子... …… 阅读全文

归并排序的实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp]view plaincopy//将有序数组a[]和b[]合并到... …… 阅读全文

超级详细的二叉树的3种遍历方法的递归和非递归的实现

二叉树是一种非常重要的数据结构,很多的数据结构都是基于二叉树的基础演变过来的。二叉树的前,中, 后3种遍历方式,因为树的定义本身就是递归定义的,所以采用递归的方法来实现是很简单的。递归开销会很大,如果使用非递归的方式需要用到栈来进行模拟,递归本身也是建立在栈的基础上的。下面将详细介绍这3种方式的递归实现和非递归实现。(非递归遍历是面试笔试的重点!!!比较的详细(啰嗦。。。。))一:先序遍历(递归)... …… 阅读全文