|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.12.2014, 11:40 | #31 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Сортирую двойные слова
Пузырьковая Код:
Шейкер Код:
|
03.12.2014, 11:44 | #32 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Пирамидальная
Код:
сортировка прямым включением Код:
Алгоритм можно улучшить пользуясь тем, что готовая последовательность уже упорядочена. Место вставки нового элемента можно найти значительно быстрее, если применить бинарный поиск, исследовав сперва средний элемент упорядоченной последовательности и продолжая деление пополам, пока не будет найдено место вставки. Для n=26 элементов лучший случай — 25, средний и худший — 106 (лучше пузырьковой сортировки почти в 3 раза) Код:
|
03.12.2014, 11:50 | #33 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
сортировка прямым выбором
На массиве из n элементов время выполнения в худшем, среднем и лучшем случае n*(n-1)/2 Код:
Среднее время работы алгоритма зависит от длин промежутков, на которых будут находится сортируемые элементы исходного списка на каждом шаге алгоритма при выборе последовательности значений d1=n/2, d2=d1/2,...,1 в худшем случае алгоритм выполнит O(n2) — сравнений 140 Код:
Код:
Код:
Код:
Код:
Сортировка даёт в среднем O(n log n) сравнений Код:
|
03.12.2014, 12:10 | #34 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Блокируем клавиатуру в Windows Для блокировки клавиатуры существует несколько путей
|
03.12.2014, 12:20 | #35 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Кто и зачем до сих пор использует DOS. Какой смысл сейчас писать что-либо под эту ОС?
|
03.12.2014, 13:41 | #36 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Reverse Engeneering Reverse Engeneering в умелых руках и с хорошим инструментарием вообще способен творить чудеса. То, что на асме выглядело так: Код:
Код:
Код:
|
03.12.2014, 13:59 | #37 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Ассемблерные вставки в Borland\Turbo Pascal
Код:
Код:
Ассемблерные вставки в Borland С++ Код:
Ассемблерные вставки в Microsoft Visual С++
Код:
Код:
Код:
Код:
|
03.12.2014, 14:03 | #38 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
По синтаксису встроенный ассемблер Visual C++ частично совпадает с MASM. Например, как и в MASM можно строить выражения с операндами и использовать offset с глобальными переменными. Как и в MASM, можно использовать глобальные метки и принудительно определять короткие переходы. Однако определить локальную метку с помощью @@ во встроенном ассемблере Visual C++ не получится – замена lab: на @@lab: в предыдущем примере вызовет ошибку компиляции. Есть и другие отличия от MASM. Например, во встроенном ассемблере Visual C++ нет никаких средств для объявления переменных, поэтому о привычных DB, DW, DD, DQ, DT, DF, DUP и THIS можно забыть. Зато можно использовать переменные, объявленные в программе на C++.
Во встроенном ассемблере также нельзя объявлять структуры — директивы STRUC, RECORD, WIDTH и MASK недопустимы. Вместо этого можно использовать структуры, объявленные в программе на C++. Кроме того, в ассемблере можно использовать комментарии и HEX-числа в стиле C++. В принципе, все отличия подробно описаны в MSDN (идет в комплекте с Visual Studio). Обычно в Visual C++ ассемблер используется для написания функций. Как правило, функции, написанные на ассемблере, объявляют с использованием директивы _stdcall. В этом случае параметры передаются в функцию на стеке в обратном порядке, а результат работы возвращается в eax. Для примера рассмотрим функцию, которая находит длину ASCIIZ-строки: Код:
Код:
Во-вторых, нужно быть осторожным с регистрами и стеком. В середине ассемблерных вставок нельзя менять регистры ds, ss, sp, bp и флаги. Если эти регистры все-таки меняются, перед выходом из ассемблерной вставки их нужно обязательно восстановить. Что касается стека, то тут нужно соблюдать правило, которое гласит: если в ассемблерной вставке нечто ложится на стек, то в той же ассемблерной вставке это «нечто» должно со стека сниматься. Рассмотрим, например, такой код: Код:
|
05.12.2014, 09:46 | #39 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Написать программу, выводящую строку "Hello, World!" на экран
|
05.12.2014, 09:49 | #40 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для шифрования раздела с виндой | Жека90 | Софт | 1 | 12.06.2012 18:17 |
макрос для решения квадратных уравнений (перемещено из раздела Excel) | sashkkk | Помощь студентам | 3 | 22.09.2010 23:06 |
Собираем команду для FAQ | Aexx | Свободное общение | 112 | 14.10.2009 09:20 |
Формат по образцу для раздела... | Busine2009 | Microsoft Office Word | 0 | 28.07.2009 08:05 |
Программа для копирования заданного раздела. С++ | x007 | Общие вопросы C/C++ | 5 | 23.04.2009 23:52 |