использование сортировки вставок для распознавания порядка массивов - PullRequest
0 голосов
/ 20 июня 2010

это мой вопрос, и я пишу алгоритм для него, я хочу знать, что этот алгоритм правильный ??спасибо !!

Вопрос: ** мне даны числа массивов, и я должен отсортировать их на основе «они упорядочены», например сначала идет массив в правильном порядкеМассив, в котором его элементы находятся в обратном порядке, идет в конце.Предположим, что элементы массивов состоят из букв A, C, G, T.Включая количество входных массивов (n), длину (m) и имя массивов.**

мой алгоритм:

Algorithm Sort(n,arr(One)[1,…,m],arr(Two)[1,…m],…arr(n)[1,…,m])

for i<--1 to n
         m<-- SumTheNumberOfInversions(arr(i))
         v[i] = m
Arrays.sort(v[i])
j <--i
for j<-- 1 to n
     return arr(j)
//end of Sort algorithm
---------------------------------------------
Algorithm SumTheNumberOfInversions(arr)
Output: sum of the numbers of inversions 
{
    int i, j, t,numberOfInversions=0;
    for (i=1; i<n; i++)
    {
        j=i;
        t=arr[j];
        while (j>0 && arr[j-1]>t)
        {
            arr[j]=arr[j-1];
            numberOfInversions++;
            j--;
        }
        arr[j]=t;
    }
     return numberOfInversions;
}

1 Ответ

1 голос
/ 23 июня 2010

Похоже, вам нужен абстрактный тип данных с двумя членами, один для хранения массива, а другой для измерения его несортированности.Создайте список этих типов, один для каждого массива.Выполните итерацию и заполните элемент несортированности (есть много способов измерить это). Сортируйте ADT по полю несортированности.

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