2

私は3つのアレイを持っています。そして、私はそれらすべてをそれらの1つでソートしようとしています。つまり、私の配列は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)とを交換する必要があります。これは、の値を一時変数にpricearray(i)格納することで実行できます。pricearray(Locationsmallest)

同じことが。にも当てはまりますquantityarray(i)

ちなみに、これはO(n ^ 2)アルゴリズムであり、配列に多数の値がある場合は非常に遅くなる可能性があります。

于 2011-04-18T16:57:52.217 に答える