Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Assembler / 14 сообщений из 14, страница 1 из 1
04.03.2013, 11:27
    #38173045
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Друзья !есть такая задачка:Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные.Сам Assemblerom занимаюсь недавно,поэтому подзастрял. как реализовать данную штуку?
...
Рейтинг: 0 / 0
04.03.2013, 11:37
    #38173059
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
fuzz,

ассемблер или бейсик - это вторично.

отсортировать любым алгоритмом. сравнение элементов массива- чётное всегда меньше нечётного
...
Рейтинг: 0 / 0
05.03.2013, 04:33
    #38174062
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Изопропилчётное всегда меньше нечётного
это неверно :)
например, 10 больше 9ти.
И вообще сравнение чисел мне кажется неверным подходом.

Можно сделать два прохода по массиву и отобрать в первом четные (типа этого AND EAX,1; JZ XXX;), во втором нечетные.

Можно в один проход, заполняя результирующий массив с двух сторон двумя счетчиками. С начала складывать четные, с конца нечетные. Так будет быстрее, наверное.
...
Рейтинг: 0 / 0
05.03.2013, 08:08
    #38174102
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
alex_kэто неверно :)
например, 10 больше 9ти.

на множестве можно задавать разные отношения порядка
...
Рейтинг: 0 / 0
05.03.2013, 16:31
    #38174863
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
fuzzДрузья !есть такая задачка:Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные.Сам Assemblerom занимаюсь недавно,поэтому подзастрял. как реализовать данную штуку?
Лично я, пожалуй, сделал бы так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
установить индексы (esi и edi, например) на начало и конец массива соответственно
цикл:
пока esi указывает на чётное, увеличить esi
пока edi указывает на нечётное, уменьшить edi
если edi < esi, выйти
поменять значения местами
повторить цикл

Обмен значениями целесообразно делать через xor.
...
Рейтинг: 0 / 0
05.03.2013, 16:33
    #38174872
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Изопропилотсортировать любым алгоритмом. сравнение элементов массива- чётное всегда меньше нечётного
Это хороший подход для случая, когда алгоритм сортировки уже есть и может быть легко использован. Когда его надо писать руками - я бы не стал возиться с общим случаем.
...
Рейтинг: 0 / 0
05.03.2013, 16:58
    #38174926
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Я не понимаю зачем вы все хотите что-то сортировать? Здесь стоит задача просто
преобразовать массив разбив его на два подмассива с обменом. И дополнительных массивов
создавать не нужно. Всё по месту делается.
...
Рейтинг: 0 / 0
05.03.2013, 20:17
    #38175183
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
maytonЯ не понимаю зачем вы все хотите что-то сортировать? Здесь стоит задача просто
преобразовать массив разбив его на два подмассива с обменом. И дополнительных массивов
создавать не нужно. Всё по месту делается.
это и есть сортировка :) , по месту что характерно, устойчивая
...
Рейтинг: 0 / 0
05.03.2013, 21:04
    #38175223
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Стабильная всмысле?
...
Рейтинг: 0 / 0
06.03.2013, 07:36
    #38175409
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
maytonСтабильная всмысле?
да, оба термина означают одно и то же
...
Рейтинг: 0 / 0
12.03.2013, 20:13
    #38182010
Роман Уникальный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
По моему это тупая модификация пузырика с тем чтобы чётные кидались вверх или вниз а нечётные наобарот - других условий нет - значит это скорее
...
Рейтинг: 0 / 0
12.03.2013, 20:15
    #38182013
Роман Уникальный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Уточнение я имею ввиду Exchange двух а не Move в другое место массива.
...
Рейтинг: 0 / 0
12.03.2013, 20:19
    #38182018
Роман Уникальный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Извините такой ник дурацкий - думал логин будет.

Надо учесть что у элементов с одинаковой чётностью должно быть неравное положение - их порядок должен оставаться неизменным.
...
Рейтинг: 0 / 0
12.03.2013, 22:15
    #38182127
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Assembler
Роман УникальныйИзвините такой ник дурацкий - думал логин будет.

Надо учесть что у элементов с одинаковой чётностью должно быть неравное положение - их порядок должен оставаться неизменным.
это и есть устойчивая/стабильная сортировка
Роман УникальныйПо моему это тупая модификация пузырика
угу.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Assembler / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]