算法之美
yangyong0717
这个作者很懒,什么都没留下…
展开
-
排序算法-堆排序的详细解释
图解排序算法(三)之堆排序预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如转载 2018-02-01 21:28:33 · 745 阅读 · 0 评论 -
Java中数组在内存中的存放原理?
Java中数组被实现为对象,它们一般都会因为记录长度而需要额外的内存。对于一个原始数据类型的数组,一般需要24字节的头信息再加上保存值所需的内存,其中24字节的头信息分别包含以下几个部分。下面分别分析一维、二维、三维的数组存储情况。下面首先对一维数组进行分析,以int[]型数组为例,假设数组长度为N,那么需要的内存占用(24+4N)个字节,原因分析比较简单,图解示例如下:即占用内存原创 2018-01-25 20:35:27 · 2709 阅读 · 0 评论 -
递归算法的解析(Java实现)
今天对递归算法进行了学习,开始很多困惑现在逐渐的对具体的运行过程有了一些了解,写篇博客记录一下。关于递归算法的解释这里不再写,具体可以参考博客:http://blog.csdn.net/luoweifu/article/details/8509688首先以斐波纳契数列为例进行分析,关于该数列:斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,原创 2018-01-18 16:34:51 · 617 阅读 · 0 评论 -
【算法第四版】2.5.2练习题答案 组合词输出
2.5.2、[编程题]组合词问题描述:从标准输入读入一列单词并打印出其中所有由两个单词组成的组合词。例如,如果输入的单词为after、thought和afterthought,那么afterthought就是一个组合词。输出描述:输出输入中存在的所有的组合词思路:本题目思路相对比较简单,直接选择剩余元素进行随机组合然后和数组中的元素进行比较即可。java代码:import原创 2018-02-02 16:23:49 · 974 阅读 · 1 评论