Estoy escribiendo una ordenación por inserción en MATLAB. Llamé a mi función como esta:

>> A = [5 4 3 2 1]

A =

     5     4     3     2     1

>> insertion_sort(A)

pero cuando lo ejecuto me sale el error

??? Attempt to reference field of non-structure array.

    Error in ==> insertion_sort at 6
        for j=2:original.length

Aquí está mi código original:

function sorted = insertion_sort(original)

    for j=2:original.length
        key = original(j);
        i = j-1;
        while i > 0 && original(i) > key
            original(i+1) = original(i);
            i = i-1;
        end
        original(i+1) = key;
    end 

sorted = original;

end

Alguien sabe qué estoy haciendo mal?

InformationsquelleAutor GetOffMyLawn | 2010-09-20

2 Comentarios

  1. 3

    Intentar numel(original) en lugar de original.length. MatLab las matrices de tipos primitivos, no objetos, y que no tienen una longitud de propiedad.

Dejar respuesta

Please enter your comment!
Please enter your name here