Лексикографическая сортировка.Асм
Написал для строк фиксированной длины.Теперь надо изменить что бы можно было сравнивать строки разной длины.Идея пока только одна:это после чтения строки в буффер ,в отдельный массив записывать адрес смещения по которому в будущем будет находяться строкаи и в соседнем байте длина слова,при сортировки менять местами не сами слова а всего лишь адреса их смещений в массиве.потом при выводе, последовательно из массива смещений считывать в dx само смещение и выводить слово.Является ли этот алгоритм оптимальным?Если да,то в случае строк разной длинны по длине какой троки сравнивать?Не будет ли более короткое слово всегда стоять первее более длинного?иначе,что еще можно придумать?
Сейчас же при сравнении,в случае надобности,слово копируются из di в si с помощъю repe movsb и потом 9ой функцией весь массив строк выводятся на экран.
Если есть к примеру строка "aaa,aac,aaacde",то как она будет выглядеть после сортировки?
2. Естественно по длине меньшей строки (а как можно сравнивать то чего нет)
3. Короткое слово всегда стоит первее длинного. Естественно в случае когда короткое слово является началом более длинного. Это так. Можно в ворде попробовать, в проводнике по именам файлов (при обычной сортировке)
4. А больше ничего придумывать не нужно
5. (1,3,2)