排序数组算法的问题

时间:2011-04-18 16:45:05

标签: arrays fortran sorting fortran95

我有三个阵列。我试图通过其中一个来解决所有这些问题。所以我的数组是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  

1 个答案:

答案 0 :(得分:3)

您将pricearray(i)设置为来自itemarray的内容。您应该交换pricearray(Locationsmallest)pricearray(i),您可以将pricearray(Locationsmallest)的值存储在临时变量中。

quantityarray(i)也是如此。

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