计算机英语翻译高分。急!!!!!
典型调度问题
树形排序
树排序是两步走的。首先,元素被插入到二叉查找树中。其次,使用inorder遍历按排序顺序检索元素。
二叉查找树并不是一种有吸引力的排序方法,因为堆做同样的工作需要更少的努力。我们不是从将元素放入二叉查找树开始,而是从形成一个堆开始。但是,如果元素在二叉查找树中,那么一个无序遍历将毫不费力地按照排序后的顺序访问它们。
树排序是一种逆向方法。首先,元素被嵌入到二叉查找树中。其次,必须按顺序遍历其中的元素。对于相同的工作负载,堆排序比二叉树排序消耗的资源少得多。所以在开始的时候,我们构建一堆元素,而不是把它们放入二叉树。尽管如此,如果元素已经在一个二叉树中,花一些时间通过使用中间顺序遍历将它们按顺序排列...)
合并排序
两个子列表,每一个都已经排序,可以合并在一起形成一个同样排序的聚合列表。一个简单而有效的方法叫做mergesort,首先比较元素对——每个子列表一个。最小的元素被追加到排序列表中,并被其子列表中的下一个元素所替换。最小的元素被添加到一个有序列表中,并被其子列表中的下一个元素所替换。这样继续下去,直到在另一个子列表中没有更多的元素,然后附加到排序列表,排序完成
当有两个排序的子列表时,这听起来不错。如果没有,问题是决定如何开始。有几种可能性。
一种方法是将单个元素视为长度为1的排序子列表。这些子列表对被合并以产生长度为t wo的排序列表。这些列表对然后被合并以产生长度为4的排序列表。这个过程一直持续到只剩下一个排序列表。这个过程如图4-8所示。
注意,mergesort需要两个数组——r,它最初保存要排序的数据,t,一个相同类型的数组,合并是成对的——首先从r到t,然后从t到r
合并两个有序序列,形成一个新的有序序列。一种叫做归并排序的方法可以简单有效地实现这个过程。开始时,比较每个序列中的两个元素。最小的元素放在有序序列中,其位置由序列中的下一个元素替换。(又来?.....)继续这个过程,直到另一个序列中没有元素要合并,然后这个元素被添加到有序序列中,排序完成。当已经有两个排序序列时,实现这种排序方法似乎很方便,但当没有排序序列时,问题就变成了如何开始:有几种方法可以实现。
一种方法是将单个元素视为长度为1的有序序列。在合并两个这样的序列之后,形成长度为2的有序序列。长度为2的两个序列被合并以形成长度为4的有序序列。这个过程一直持续到只有一个有序序列。如图4-8所示。
注意归并排序需要两个指针,array-r的初始位置是排序后序列的开始位置,array-t也是,在归并开始时,将R指向的值与T进行比较(较小的那个在排序序列中?),那么t到r .所以归并排序需要N个元素对应的空间来申请2xN。
.....不太了解。