这是用java写的。假设您的快速排序算法使用了一个支点规则,该规则选择“中间”中的元素。这就是说,对于n大小的数组A0,1,…,n−1,如果n是偶数,则使用a/2中的元素作为枢轴,如果n是奇数,则使用A(n−1)−中的元素作为枢轴。说明此算法如何在输入上使用快速排序树工作:
[7 6 5 4 3 2 1]第一个枢轴是5还是4?我想应该是5,因为(7-1)/2 =3和5是第三个元素,或者是第三个索引,哪个是元素4?
发布于 2014-10-16 02:52:18
数组的大小为7。
大小是奇数,所以[(n-1)/2]将使用-> [(n-1)/2] = [(7-1)/2] = 3
它将是第三指数,即第四要素。
在你的案例中
发布于 2014-10-16 02:56:01
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
https://stackoverflow.com/questions/26395441
复制相似问题