这是在java中。假设您的快速排序算法使用一个选择“中间”元素的数据透视规则。也就是说,对于大小为n的数组A [0,1,...,n-1],如果n是偶数,则它使用A [n / 2]中的元素作为枢轴,而A [(n - 1)/ 2]作为枢轴,如果n是奇数。使用输入上的快速排序树说明此算法的工作原理:
[7 6 5 4 3 2 1]
第一个支点是5还是4?我认为它会是5,因为(7-1)/ 2 = 3和5是第3个元素,或者它是第3个索引,它是元素4?
答案 0 :(得分:0)
你的阵列的大小是7
大小是奇数,因此将使用[(n-1)/2]
- > [(n-1)/2] = [(7-1)/2] = 3
它将是第三个索引,即第四个元素
这是你的情况4
答案 1 :(得分:0)
[7 6 5 4 3 2 1]有7个元素,所以奇怪你说它用以下方法计算枢轴:A [(n-1)/ 2]
所以,(7-1)/ 2 => 6/2 =>数组中的第3个位置,在您的情况下为4
考虑到这种除法将始终返回截断的整数。
例如,5/2 = 2,3 / 2 = 1