03 2015 档案
摘要:package kpp.base;/** * 求两个有序数组的中位数 * 此代码适用于两个数组长度不等的情况:长度不等的情况下,两个数组分别从相反方向去掉元素,且去掉的元素个数相同 * @author kpp * */public class TwoArrayMedian { public s...
阅读全文
摘要:http://www.cnblogs.com/wangaohui/archive/2012/12/16/2820974.html
阅读全文
摘要:如图所示的二叉排序树查找成功的平均查找长度为:∑(本层高度*本层元素个数)/节点总数=(1*1+2*2+3*3+3*4)/9查找不成功的平均查找长度:∑(本层高度*本层补上的叶子个数)/补上的叶子总数=(2*1+3*3+4*6)/10
阅读全文
摘要:http://blog.csdn.net/lcore/article/details/8892648
阅读全文
摘要:http://blog.csdn.net/lcore/article/details/8889176
阅读全文
摘要:package kpp.search;/** * 二分查找 * 针对有序序列 * @author kpp * */public class BinarySearch { public static void main(String[] args) { // TODO Auto-g...
阅读全文
摘要:/** * 顺序查找,设置哨兵 * 待查找数组:a[n] * 待查找元素:key * * 方法: * b[n+1],其中,b[0]存放key,b[1]至b[n]存放a[0]至a[n-1]的元素 * 将b[n]从后向前扫描,如果查找成功,返回元素在数组b中的下标,从1开始;如果查找失败,返回0 * ...
阅读全文
摘要:package kpp.sort;/** * 快速排序 * 一般选取首元素为枢轴元素,保存至pivot,确定头尾指针left,right, * 先对整个数组元素进行排序,此时枢轴元素两侧元素有序,再分别对枢轴元素两侧的两个数组执行排序 * 排序规则 * 1.right指针从右向左遍历,如果比当前枢轴...
阅读全文
摘要:package kpp.sort;/** * 堆的定义如下: n个元素的序列{k0,k1,...,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。 " ki=k2i,ki>=k2i+1.(i=1,2,…,[n/2])" 若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成...
阅读全文
摘要:package kpp.sort;/** * 希尔排序 * 1.设定步长d,每隔d个元素分为一组,组内插入排序; * 2.d/=2,重复1步骤,直到步长为1 * * 们知道一次插入排序是稳定的,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以希尔排序是不...
阅读全文
摘要:package kpp.sort;/** * 选择排序 * 从第0个元素开始,每次选择最小的元素,与当前元素交换 * 简单选择排序是不稳定的排序。 时间复杂度:T(n)=O(n^2)。 * @author kpp * */public class SelectSort { public s...
阅读全文
摘要:package kpp.sort;/** * 当前待插入元素data[i],若data[i]>=data[i-1],则表示排序正常,i++处理下一个元素 * 若data[i]= left;j--){ a[j+1]=a[j]; } ...
阅读全文
摘要:package kpp.sort;/** * 当前待插入元素data[i],若data[i]>=data[i-1],则表示排序正常,i++处理下一个元素 * 若data[i]=0&&temp = j+1;k--){ a[k+1]=a[k]; ...
阅读全文

浙公网安备 33010602011771号