对具有特定函数

时间:2017-01-12 23:45:50

标签: php arrays sorting

我完成了以下任务,不幸的是我不知道如何解决它。

您已经实施了以下功能:

function array_swap(&$ar,$j) { ... } // changes element at position $j with element at position 0
/*
 * Example:
 * $ar=array(3,1,5);
 * array_swap($ar, 2); // change element at position 2 with element at position 0
 * result is array(5,1,3);
*/

1您必须使用array_swap函数

2您可以比较数组中的元素

3你可以使用任何循环(for,foreach,while等)

4任务是对数组进行升序排序

有人可以给我帮助,想法如何实现这个?也许算法足够了,我希望我可以编码。 :) 这是一个算法问题,我之前检查过现有的算法,但没有发现任何类似的算法。

1 个答案:

答案 0 :(得分:0)

解决这个问题的一个方法是使用array_swap函数两次:首先是将到目前为止找到的最高值放入第一个索引,然后将其移动到数组的末尾。现在您在正确的位置拥有最高价值,您可以向下移动1个索引。您只需找到低于先前最高值的下一个最高值,然后再次进行双重交换。重复,直到到达数组的开头。

以上是O(n ^ 2)解决方案,因此可能有更有效的解决方案。