排序输入的小写英文字符。

program BubbleSorter;
var
        n, i, j : integer;
        t : char;
        st : array[1 .. 100] of char;
        noswap : boolean;
begin
        readln(n);
        for i := 1 to n do
                read(st[i]);
        for i := 1 to n do
        begin
                noswap := true;
                for j := 1 to n-i do
                        if st[j] > st[j+1] then
                        begin
                                t := st[j];
                                st[j] := st[j+1];
                                st[j+1] := t;
                                noswap := false;
                        end;
                if (noswap) then break;
        end;
        for i := 1 to n do
                write(st[i], '  ');
        readln;
        readln;
end.


program InsertSorter1;
var
        n, i, j : integer;
        m : char;
        st : array[1 .. 100] of char;
begin
        readln(n);
        for i := 1 to n do
                read(st[i]);
        for i := 2 to n do
        begin
                m := st[i];
                for j := i-1 downto 1 do
                        if (st[j] > m) then
                                st[j+1] := st[j]
                        else
                                break;
                if (j = 1) and (st[j] > m) then
                        st[j] := m
                else
                        st[j+1] := m;
        end;
        for i := 1 to n do
                write(st[i], '  ');
        readln;
        readln;
end.


program InsertSorter2;
var
        n, i, j : integer;
        m : char;
        st : array[1 .. 100] of char;
begin
        readln(n);
        for i := 1 to n do
                read(st[i]);
        for i := 2 to n do
        begin
                m := st[i];
                j := i-1;
                while (j > 0) and (st[j] > m) do
                begin
                        st[j+1] := st[j];
                        j := j-1;
                end;
                st[j+1] := m;
        end;
        for i := 1 to n do
                write(st[i], '  ');
        readln;
        readln;
end.


program StraightSelectSorter;
var
        n, i, j, p : integer;
        t : char;
        st : array[1 .. 100] of char;
begin
        readln(n);
        for i := 1 to n do
                read(st[i]);
        for i := 1 to n-1 do
        begin
                p := i;
                for j := i+1 to n do
                        if st[j] < st[p] then
                                p := j;
                t := st[i];
                st[i] := st[p];
                st[p] := t;
        end;
        for i := 1 to n do
                write(st[i], '  ');
        readln;
        readln;
end.


program SortStatisticser;
var
        n, i : integer;
        j : char;
        st : array[1 .. 100] of char;
        ch : array['a' .. 'z'] of integer;
begin
        readln(n);
        for i := 1 to n do
        begin
                read(st[i]);
                ch[st[i]] := ch[st[i]]+1;
        end;
        for j := 'a' to 'z' do
                for i := 1 to ch[j] do
                    write(j, '  ');
        readln;
        readln;
end. 
posted @ 2010-01-21 18:50  SmartIOI  阅读(145)  评论(0)    收藏  举报
本站采用CC授权如需转载、引用文章,请务必附上作者及来源处。 Creative Commons License