Проблема с алгоритмом сортировки массива - PullRequest
1 голос
/ 18 апреля 2011

У меня есть три массива. И я пытаюсь отсортировать их по одному так. Таким образом, мои массивы: itemarray, pricearray, количественный массив. Я хочу, чтобы 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 Ответ

3 голосов
/ 18 апреля 2011

Вы устанавливаете pricearray(i) на то, что пришло от itemarray. Вам следует поменять местами pricearray(Locationsmallest) и pricearray(i), что можно сделать, сохранив значение pricearray(Locationsmallest) во временной переменной.

То же самое верно для quantityarray(i).

Кстати, это алгоритм O (n ^ 2), и он, вероятно, будет очень медленным, когда в вашем массиве большое количество значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...