1 abstract class Heap { 2 protected $elements = array(); 3 protected $n = 0; 4 5 public abstract function insert($element); 6 7 ...
分类:
编程语言 时间:
2015-03-30 12:42:33
阅读次数:
123
详细课程就不表了,看代码吧 1 import java.util.Arrays; 2 3 public class Sort { 4 5 6 static int swapTimes=0; 7 public static void main(String[...
分类:
编程语言 时间:
2015-03-29 12:07:56
阅读次数:
143
针对堆排序的概念自己百度去,今天没事了用php实现堆排序的算法 1 abstract class Heap { 2 protected $elements = array(); 3 protected $n = 0; 4 5 public abstract func...
分类:
编程语言 时间:
2015-03-28 22:59:45
阅读次数:
149
https://leetcode.com/problems/sort-list/Sort a linked list inO(nlogn) time using constant space complexity.解题思路:常见的O(nlogn)算法,快速排序、归并排序,堆排序。大概讲讲优缺点,在数...
分类:
其他好文 时间:
2015-03-28 21:32:10
阅读次数:
114
突然看到一个大神的系列文章讲的就是算法和数据结构,现在把它的文章集中分享给大家,向大神致敬:浅谈算法和数据结构: 一 栈和队列浅谈算法和数据结构: 二 基本排序算法浅谈算法和数据结构: 三 合并排序浅谈算法和数据结构: 四 快速排序浅谈算法和数据结构: 五 优先级队列与堆排序浅谈算法和数据结构: 六...
分类:
编程语言 时间:
2015-03-28 12:57:39
阅读次数:
133
定义n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1)ki=号。//k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右子节点若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全...
分类:
编程语言 时间:
2015-03-28 12:46:19
阅读次数:
191
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择...
分类:
编程语言 时间:
2015-03-28 11:32:22
阅读次数:
155
package kpp.sort;/** * 堆的定义如下: n个元素的序列{k0,k1,...,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。 " ki=k2i,ki>=k2i+1.(i=1,2,…,[n/2])" 若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成...
分类:
编程语言 时间:
2015-03-27 23:51:03
阅读次数:
186
堆排序利用的是堆这种数据结构来对进行排序,(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全的二叉树,树的每个节点与数组中存放该节点的值得那个元素对应。这里使用最大堆进行排序算法设计,最大堆就是parent(i) > leftchild(i) 且parent(i) > rightchild(i)...
分类:
其他好文 时间:
2015-03-27 23:35:39
阅读次数:
220
package kpp.sort;/** * 堆的定义如下: n个元素的序列{k0,k1,...,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。 " ki=k2i,ki>=k2i+1.(i=1,2,…,[n/2])" 若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成...
分类:
编程语言 时间:
2015-03-27 21:53:47
阅读次数:
200