摘要:
这节,我们介绍基数排序和归并排序。一、基数排序基数排序(Radix Sort)的设计思想与前面介绍的各种排序方法完全不同。前面介绍的排序方法主要是通过关键码的比较和记录的移动这两种操作来实现排序的,而基数排序不需要进行关键码的比较和记录的移动。基数排序是一种借助于多关键码排序的思想,是将单关键码按基数分成多关键码进行排序的方法,是一种分配排序。下面用一个具体的例子来说明多关键码排序的思想。 一副扑克牌有 52 张牌,可按花色和面值进行分类,其大小关系如下: 花色:梅花<方块<红心<黑心 面值:2<3<4<5<6<7<8<9<10 阅读全文
posted @ 2012-11-15 18:47
laozhu1124
阅读(1737)
评论(1)
推荐(1)
摘要:
这节我们介绍堆排序。、堆排序在直接选择排序中,顺序表是一个线性结构,要从有n个记录的顺序表中选择出一个最小的记录需要比较n-1 次。如能把待排序的n个记录构成一个完全二叉树结构,则每次选择出一个最大(或最小)的记录比较的次数就是完全二叉树的高度, 即log2n次, 则排序算法的时间复杂度就是O (nlog2n) 。 这就是堆排序(Heap Sort)的基本思想。 堆分为最大堆和最小堆两种。最大堆的定义如下: 设顺序表sqList中存放了n个记录, 对于任意的i(0≤i≤n-1), 如果2i+1<n时有 sqList[i]的关键码不小于 sqList[2i+1]的关键码;如果 2i+2&l 阅读全文
posted @ 2012-11-15 15:41
laozhu1124
阅读(1381)
评论(1)
推荐(1)
浙公网安备 33010602011771号