Показать сообщение отдельно
  #3  
Старый 21.06.2015, 19:32
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

1) Построить массив количеств по первым байтам символов. Явно школьная задачка, потому пропускаю случай с не-ASCII символами, иероглифами и прочим UTF:
Код:
counts: array[0..255] of integer;
...
s := AnsiLowerCase(Edit.Text);
for i := 1 to length(s) do
  inc(counts[byte(s[i])]);
2) Построить массив индексов. Заполнить массив числами от 0 до 255 и отсортировать, в качестве значения для сортировки используя counts[indexes[i]].
Код:
indexes: array [0..255] of byte;
...
for i := 0 to 255 do
  indexes[i] := i;

Sort(indexes, counts); // <- пузырьковую сортировку нагуглить и подправить
3) Распечатать массив индексов и соответствующих им количеств из массива counts.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием