算法
文章平均质量分 74
向着自由
路漫漫其修远兮
展开
-
Hash函数--除留余数法--开放定址法--线性探测再散列
Hash函数计算--常用方法之--除留余数法:假设哈希表长为m,p为小于等于m的最大素数,则哈希函数为h(k)=k % p ,其中%为模p取余运算。例如,已知待散列元素为(18,75,60,43,54,90,46),表长m=10,p=7,则有 h(18)=18 % 7=4 h(75)=75 % 7=5 h(60)=60 % 7=4 h(43)=43 % 7=1 ...原创 2018-03-31 13:55:52 · 6601 阅读 · 2 评论 -
堆排序算法详解,java代码实现
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组...转载 2018-04-09 20:44:21 · 385 阅读 · 0 评论 -
快速排序java编译代码
分析:1、以最后一个值作为基准值2、从前往后直到倒数第二个停下3、比基准值小的从首位开始往后互相交换(比如第一个比基准值小的元素将它的位置与第一个位置交换),比基准值大的原位暂时不动,往后找,知道完成;4、例子,如图 1>4为基准值,2比4小,将2与首位的值相互交换 2>8比4大,不动,往后找 3>7比4大,不动,往后找 4>1比4小,将1与第二个位...原创 2018-04-10 21:19:15 · 198 阅读 · 0 评论 -
堆排序
大顶堆构造+堆顶值取出(注:下标从0开始)大小顶堆需满足条件:左右孩子需大于/小于父节点,左右孩子之间无具体关联;package work.算法优先级队列;import java.util.Arrays;public class main { public static void main(String[] args){ int[] arr={1,2,3,4,5,6,7}; s...原创 2018-05-07 21:52:32 · 196 阅读 · 0 评论