- 二叉树上模拟快速排序
- 串行算法简介:快速排序是一种较为高效的排序算法,它通过不断的划分待排序列为两段,使得前一段总小于或等于某个数,而后一段总大于某个数,这样每次划分就能确定一个数的最终位置。一般情况下,如果每次划分的两个子列大致等长,那么它的时间复杂度是
。 - 在PRAM-CRCW计算模型上利用二叉树网络模拟快速排序
- 由快速排序的过程,我们可以看到,快速排序实际上就是在构造一棵二叉树,让划分主元位于根节点,使得左子节点小于或等于根而右子节点大于根,最后对整棵二叉树进行一次中序遍历,便可以得到最后排好序的数列。
- 我们可以选n个处理器分别保存待排序数组A的n个元素,处理器Pi对应一个变量Xi用于存放主元元素的处理器号,以及两个变量L,R分别存放其左右儿子。开始时,每一个处理器都试图往变量root中写入它的处理器号,若果我们使用PRAM-CRCW计算模型,那么就只有一个能够写入root,接着root被复制给每一个处理器的Xi。然后对于每个处理器(除去被原为主元的那个外)判断其值与
的大小,从而确定放入
还是
,同样的,由于并发操作的互斥性,只有一个只能被最终写入,他们就作为下次划分的主元。算法继续进行直到n个主元被选完为止。
- 时间复杂度分析:由于一层节点的构造时间是Θ(1),所以算法的时间复杂度是Θ(logn)
- 串行算法简介:快速排序是一种较为高效的排序算法,它通过不断的划分待排序列为两段,使得前一段总小于或等于某个数,而后一段总大于某个数,这样每次划分就能确定一个数的最终位置。一般情况下,如果每次划分的两个子列大致等长,那么它的时间复杂度是
二叉树上模拟快速排序
最新推荐文章于 2025-11-19 21:32:06 发布
2344





