data-structures - 快速排序练习

标签 data-structures computer-science quicksort

嗨,大家好,我需要快速排序: 90 8 7 56 123 235 9 1 653,作为枢轴90。我见过很多人这样做,而且我觉得每个人都以不同的方式来做。我知道如果它位于最后一个位置,该怎么做,如下:

http://www.geeksforgeeks.org/quick-sort/

但是如果刚开始的话会怎么样?另外,如果它在中间呢?

注意:没有代码,只有Nombers。

谢谢!

注意:这就是我所拥有的,但是我认为这是错误的,对吗?

653 8 7 56 123 235 9 1 90 (与最后交换)

653 8 7 56 123 235 9 1 90(arr [J] <=枢轴?否,所以J = 0并检查下一个索引)

8 653 7 56 123 235 9 1 90(交换)

8 7 653 56 123 235 9 1 90

8 7 56653 123 235 9 1 90

8 7 56 9 123 235 653 1 90

8 7 56 9 1 235 653 123 90

8 7 56 9 1 90653123235

8 7 56 9 1

最佳答案

初始数据:90 8 7 56 123 235 91 653
我们选择枢轴为90,左标记为9,右标记为653。
90 8 7 56 123 235 91 653 P L R
我们增加左标记的索引,直到达到> 90的值。左侧标记设置为123。90 8 7 56 123 235 91 653 P L R
我们递减右标记的索引,直到达到<90的值。右侧标记设置为56。
90 8 7 56 123 235 91 653 P R L
右标记和左标记相交,因此我们找到了一个分割点。我们将90与56交换。56 8 7 90 123 235 91 653
现在,我们将数据透视表90定位在正确的位置,并以大小为1的分区的停止情况将快速排序递归应用于每个分区。
56 8 7 90 123 235 91 653 P L R F P L R
(“F”表示该值固定在该索引位置)

这是有关quicksort的重要资源:http://interactivepython.org/runestone/static/pythonds/SortSearch/TheQuickSort.html

关于data-structures - 快速排序练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47562715/

相关文章:

javascript - js库支持各种数据结构? (就像java中的 Guava )

c - 变异数组中最小值及其偏移量的数据结构

functional-programming - 对于定点组合器 Y,\x.f(xx) 是什么

quicksort - APL中快速排序的解释

c++ - 合并和快速排序 - 堆栈重载

python - 了解递归函数 - 快速选择 - 在线性时间内查找中值

algorithm - 来自一组区间的第 K 个最小值

algorithm - 分隔 0 和 1 列表所需的最少相邻交换数是多少?

algorithm - 创建具有 n 个节点和 L 个叶节点的 AVL 树的方法数

computer-science - 'Enterprise Ready' 是什么意思?