% 
%  Eingelesene Personen-Daten nach 
%    erstem Buchstaben des Namens sortieren
%
function sortieren( anz )

    fprintf( '%d Personen: Bitte Daten eingeben: \n', anz );  
    % s = struct( 'Name', '', 'VName', '' );
    for( n=1:anz )
       s(n).Name  = input('Name: ', 's' ); 
       s(n).VName = input('  Vorname: ', 's' ); 
    end
    
    % Äußere Schleife: 
    %   nacheinander 1. Buchstabe des Namens vergleichen    
    for( n=1:anz )
       best = n;
       actN = upper( s(n).Name(1) );   % zur Sicherheit groß 
       % Dahinter liegende Namen vergleichen
       for( k=n+1:anz )
          kN = upper( s(k).Name(1) );  
          % 1. Zeichen im k. Namen liegt vor n. Namen 
          if( kN < actN )
             best = k; 
             actN = kN; 
          end
       end
       % besserer Name gefunden 
       if( best ~= n )
          act = s(n); 
          bst = s(best);
          % struct Umkopieren
          s(n) = bst;
          s(best) = act;
       end
    end
    
    fprintf( 'Sortierte Liste: \n' );
    for( n=1:anz )
       fprintf( '%s, %s \n', s(n).Name, s(n).VName ); 
    end
    
 