2

我有三个数组。我正试图按其中一个对所有这些进行排序。所以我的数组是 itemarray、pricearray、quantityarray。我希望对 itemarray 进行排序,但相应的数组没有与 itemarray 一起正确排序。

这是我创建的算法。你知道我该如何解决这个问题吗?

DO i=1, NumItems-1

    SmallestItem = MINVAL(itemarray(i:NumItems))
    MINLOC_array = MINLOC(itemarray(i:NumItems))
    Locationsmallest = (i-1)+MINLOC_array(1)

    itemarray(Locationsmallest) = itemarray(i)
    itemarray(i) = SmallestItem

    pricearray(Locationsmallest) = pricearray(i)
    pricearray(i) = SmallestItem

    quantityarray(Locationsmallest) = quantityarray(i)
    quantityarray(i) = SmallestItem

END DO  
4

1 回答 1

3

您正在设置pricearray(i)来自 的东西itemarray。您应该交换pricearray(Locationsmallest)and pricearray(i),您可以通过将 的值存储pricearray(Locationsmallest)在临时变量中来做到这一点。

对于quantityarray(i).

顺便说一句,这是一个 O(n^2) 算法,当您的数组中有大量值时,它可能会非常慢。

于 2011-04-18T16:57:52.217 回答