09 2015 档案
摘要:(六)归并排序 (七)快速排序希尔排序相当与直接插入排序的升级,堆排序相当于简单选择排序的升级,而接下来要介绍的快速排序其实是冒泡排序的升级。快速排序的基本思想是:每次在待排数组中选定一个基准元素,通过一趟排序,使得位于基准元素右侧的元素均大于此基准元素,基准元素左侧的元素均小于此基准元素。这样再...
阅读全文
摘要:(五)堆排序堆是具有以下性质的完全二叉树:每个结点的值都大于等于(小于等于)其左右孩子结点的值,称为大顶堆(小顶堆)。因此,根结点一定是整个堆的最大值(最小值)。前面讲到的简单选择排序在确定每个当前的最小值时进行了多次比较,虽然这是必须的,但是算法执行过程中并没有把比较结果保存下来,导致了无谓的一...
阅读全文
摘要:排序排序的定义非常简单,就是把乱序状态下的众多元素整理成有序状态。关于排序,有稳定和不稳定之分。关于排序算法,有内排序和外排序之分。本文将对内排序的众多算法进行实现和比较。首先,我们来看一下衡量一个算法性能的因素:(1)时间性能:在内排序算法中,主要有两种操作:比较和移动。衡量一个算法的优劣时,时...
阅读全文
摘要:树(tree)是n个结点的有限集。n=0时表示树为空树。在任意一棵非空树中,有且只有一个结点为根结点(root),当n 1时,其余结点可以分为许多个互不相交的有限集T1、T2···,其中每一个集合本身也是一棵树,并且成为根结点的子树。如果把上述中的很多集合换为两个集合,就成了树中一种实用价值比较高的...
阅读全文
摘要:本次讨论单向链表的排序。本质上讲,链表的排序与数组的排序在算法上有很多相通的地方,但是由于单向链表只能向后访问的特殊性,那些要求随机访问的排序算法在链表的排序上并不能施展手脚,所以只能采用相邻比较的排序方法:冒泡法,而且只能从前向后冒泡。链表的另一个问题是由于长度不是已知的,所以终止条件只能通过节点...
阅读全文
摘要:链表是这样的一种数据结构,其中的各个对象按照线性顺序排列。链表又有单向链表、双向链表、有序链表、无序链表、循环链表及以上各特性组合的链表等,链表尾动态集合提供了一种简单而灵活的表示方法。与数组的线性顺序由其下标决定不同的是,链表的顺序由各个对象里的指针决定。一般情况下,链表由节点(node)串联而成...
阅读全文

浙公网安备 33010602011771号