算法和数据结构
easonlv
简单优雅,偶尔酸腐。研究数据挖掘、机器学习和软件工程。
展开
-
堆排序
堆 堆排序和合并排序一样,是一种时间复杂度为O(nlgn)的算法,同时和插入排序一样,是一种就地排序算法(不需要额外的存储空间)。堆排序需要用到一种被称为最大堆的数据结构,与java或者lisp的gc不一样,这里的堆是一种数据结构,他可以被视为一种完全二叉树,即树里面除了最后一层其他层都是填满的。也正是因为这样,树里面每个节点的子女和双亲节点的序号都可以根据当前节点的序号直原创 2016-05-09 21:31:21 · 1025 阅读 · 0 评论 -
快速排序的多种语言代码实现
快速排序算法过程快速排序 的思想很简单,整个排序过程只需要三步: 1. 在数据集之中,找一个基准点; 2. 建立两个数组,分别存储左边和右边的数组; 3. 利用递归进行下次比较。Java代码public class QuickSort { //一次划分 public static int partition(int[] arr, int left, int right原创 2016-05-15 12:38:03 · 709 阅读 · 0 评论