#1 18.05.10 11:02
[C++] Массивы и их сортировка
Вообщем я не буду приводить код и вас не прошу!
Итак, есть одномерный массив текста(допустим слова "Hello boy")! Так вот нужно что бы программа сортировала слова в столбик по алфавиту.
Т.е
boy
Hello
А затем должна считать количество букв в каждом слове...Объясните просто на словах как это реализовать!
Offline
#5 18.05.10 13:04
Re: [C++] Массивы и их сортировка
собрать информацию о количестве букв в слове, о позиции первой буквы каждого слова можно за один проход. (два массива)
затем завести массив, содержащий индексы массива с позициями первых букв и перестановки во время сортировки делать в нём.
затем брать из отсортированного массива индекс, получать по нему номер позиции и количество букв и выводить на экран часть строки.
так бы сделал я 8)
Offline
#7 18.05.10 17:48
Re: [C++] Массивы и их сортировка
$up, это, как я понимаю, в случае сортировки только по первой букве? в данном случае лучше всего подходит поразрядная сортировка MSD... можно посмотреть реализацию в Седжвике... только лучше всего смотреть в оригинале (т.е. на инглише), а то при переводе допустили огрешности... разделить строку на массив слов особых проблем нет... простые функции работы со строками (strstr, например)...
Offline
#8 18.05.10 18:37
Re: [C++] Массивы и их сортировка
я лишь описал как сортировать не копируя слова, а функция сравнения может работать как по первой букве, так и использовать информацию о количестве букв в слове и делать полное сравнение слов.
смысл в том, что строка у нас всегда существует в одном экземпляре, мы просто обращаемся к разным частям в ней, и по сути сортируем массив указателей.
Исправлено $up (18.05.10 18:43)
Offline

