Вообщем, голова сейчас забита не этим, поэтому, прошу тех у кого есть время. Нужно отсортировать массив любых слов, не только по их длине по нарастающей, но и алфавиту, одновременно. Как?
Этот топик читают: Гость
Ответов: 1536
Рейтинг: 176
|
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
ser_davkin писал(а): Как?Двумя сортировками подряд, сперва алфавит, потом длина. Но эффект от второй сортировки будет заметен только на словах, у которых буквы совпадают, но конец отличается по длине. |
|||
карма: 1 |
|
Ответов: 1536
Рейтинг: 176
|
|||
1nd1g0, т.е. сначала по алфавиту, а потом по длине? По алфавиту - понятно, но как отсортировать по длине, не теряя алфавитность?
|
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
ser_davkin, к примеру, сперва сортируете по длине, потом - по алфавиту, но алгоритм сортировки по алфавиту должен обязательно брать данные линейно, начиная с первого, самого короткого элемента. Либо сперва по алфавиту, а потом сортируете по длине проверяя, чтобы слова, совпадающие по началу, оставались стоять рядом и лишь менялись местами, если более короткое - снизу. Хотя толковый алгоритм сортировки по алфавиту и так первым должен оставить короткое "однокоренное" нижним слово, считая несуществующие, "пустые" символы идущими в нулевой позиции алфавита, то есть должными быть впереди любых других символов.
|
|||
карма: 1 |
|
Ответов: 8933
Рейтинг: 824
|
|||
ser_davkin, можно добавить к каждому слову любой знак не из алфавита (#, @, %) или даже не печатные до максимальной длины слов, например до 30, отсортировать, затем удалить этот знак.
|
|||
карма: 19 |
|
Ответов: 1536
Рейтинг: 176
|
|||
карма: 1 |
|
6