Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 快速排序分区和二叉搜索树之间如何存在一对一的对应关系?_Algorithm_Binary Search Tree - Fatal编程技术网

Algorithm 快速排序分区和二叉搜索树之间如何存在一对一的对应关系?

Algorithm 快速排序分区和二叉搜索树之间如何存在一对一的对应关系?,algorithm,binary-search-tree,Algorithm,Binary Search Tree,如果我们取一些元素,在第一个元素上对它们进行分区。现在将分区元素作为二叉树的根,我们将这些元素插入到二叉树中。会有一对一的通信吗 有人能解释一下元素之间是如何一对一对应的吗?在未优化的快速排序中,数组的每个元素都以一个递归调用作为轴心出现。递归调用树可以看作是一个二进制搜索树 例如,排序3 1 4 5 9 2 6,在每个级别标记枢轴(在本例中,始终是子阵列的第一个元素),并标记子阵列之间的边界: 3 1 4 5 9 2 6 ^ 1 2 | 3 | 4 5 9 6 ^ ^ 1

如果我们取一些元素,在第一个元素上对它们进行分区。现在将分区元素作为二叉树的根,我们将这些元素插入到二叉树中。会有一对一的通信吗


有人能解释一下元素之间是如何一对一对应的吗?

在未优化的快速排序中,数组的每个元素都以一个递归调用作为轴心出现。递归调用树可以看作是一个二进制搜索树

例如,排序
3 1 4 5 9 2 6
,在每个级别标记枢轴(在本例中,始终是子阵列的第一个元素),并标记子阵列之间的边界:

3 1 4 5 9 2 6
^

1 2 | 3 | 4 5 9 6 
^         ^

1 | 2 | 3 | 4 | 5 9 6 
    ^           ^

1 | 2 | 3 | 4 | 5 | 9 6 
                    ^

1 | 2 | 3 | 4 | 5 | 6 | 9
                    ^

   3
  / \
 /   \
1     4
 \     \
  2     5
         \
          9
         /
        6