算法设计
文章平均质量分 82
ohdearmygod
这个作者很懒,什么都没留下…
展开
-
堆排序算法原理以及实例代码
1、 堆排序定义n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ ) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例】关键字序列(...原创 2011-09-23 19:56:31 · 65 阅读 · 0 评论 -
希尔排序思想
希尔排序(Shell Sort)又称为“缩小增量排序”。是1959年由D.L.Shell提出来的。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序...原创 2011-06-17 15:56:54 · 335 阅读 · 0 评论 -
合并排序
闲来无事,来写写合并排序,第一次看到合并排序,我相信大家可能像我一样感觉看的有点迷糊,特别合并排序的思想:是将一个数组分成2个较小有序的数组,然后才进行合并排序。迷糊的地方:主要是下面涂色的地方,在归并前2个数组有序(怎么有序呢?),然后只要大家联想到递归或者树的遍历就知道,在将每个较大的数组拆分的时候呈现一个树形,到最后只有一个数字(有序),然后再依此合并。import java.util.*;...原创 2011-11-12 22:00:52 · 67 阅读 · 0 评论