Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры до 20 бил1.doc
Скачиваний:
45
Добавлен:
24.09.2019
Размер:
812.54 Кб
Скачать

2.Системы счисления(сс).Представление чисел в памяти компьютера.

СС – это правило записи чисел с помощью заданного набора специальных знаков – цифр.Сущ-ют различные способы записи чисел, кот. объединяют в неск-ко групп: унарная (это СС, в кот.использ-ся только 1 знак – I («палочка»));непозиционная (м.считать римскую СС. Значение цифры не зависит от позиции в числе.(VI, XII));позиционная(наз-ся СС,в кот. значение каждой цифры в изображении числа определяется ее положением в ряду др. цифр.)

Основание поз-ой СС – это кол-во различных знаков или символов, используемых для изображения цифр в данной системе.За осн-ие м. принять любое натур.число – 2,3,4,…След-но возможно бесчисленное мн-во позиц-ых систем:2ая,3ая,4аачя,и т.д.Запись чисел в каждой из СС с основанием q озночает сокращенную запись выражения

an-1qn-1+an-2qn-2+…+a1q1+a0q0+a-1q-1+…+a-mq-m,где ai- цифры СС;n и m – число целых и дробных разрядов соответственно.

СС с основанием 2 наз-ся двоичной.Цифрами 2 СС явл. 0и1.

Пример:1011,12=1*23+0*22+1*21+1*20+1*2-1,

276,528=2*82+7*81+6*80+5*8-1+2*8-2

ЭВМ испол-ет 2ую СС потому,что она имеет ряд преимуществ перед другими системами:1.для ее реализации нужны технические элементы с двумя возможными состояниями.2.представление инф-ции посредством 2 состояний надежно и помехоустойчиво.3.2ая арифметика проще 10ой.

4.Двоичные таблицы сложения и умножения предельно просты.Недостаток – быстрый рост числа разрядов,необходимых для записи числа. Используются также 8 и16ая СС. Для перевода 8 и 16-ых чисел в 2СС надо каждую цифру заменить эквивалентной ей двойчной триадой или тетрадой(3или4).ПР:537,18=101 011 111,0012;

1А3,F16=1 1010 0011.11112

При переводе числа в систему с основанием q (q=2,8,16)его необходимо последовательно делить на q до тех пор, пока не останется остаток, меньший или равный q-1.Числа с осн-ем q записываются как последовательность остатков от деления, записанных в обратном порядке, начиная с последнего.ПР-Р( делим столбиком)

75

Делим на8

3

9

8

1

1

Ответ: 7510=1138

Правильную десятичную дробь при переводе необходимо последовательно умножать на основание той СС, в кот.она переводится.Число в новой СС записывается как последовательность полученных целых частей произведения.Умнож-е произв-ся до тех пор, пока дробная часть произв-я не станет равной 0. это значит что сделан точный перевод.В противном случае перевод осуществляется до заданной точности.ПР-Р:0,53610=X4=0,2021…4

0

536 *4

2

144 *4

0

576 *4

2

304 *4

1

216 *4

Чтобы перевести число из 2СС(8,16) в 10ую, надо число в 2йСС(8,16) представить в виде суммы степеней основания его СС.ПР-Р: 1011,12=1000+10+1+0,1=1*23+1*21+1*20+1*2-1=11,510

6. Алгоритмы поиска и сортировки.

Линейниый поиск. Большинство задач сводится к простейшей – к поиску в массиве элемента с заданным значением. Пусть нужно найти элемент x в массиве a.начнем исследовательский просмотр массива и сравнение элементов a и x. For i:=1 to n do if a[i]=x then k:=i; {находится место последнего элемента в a равного x, при этом массив просматривается полностью. Исключим лишние проверки: i:=1;while (i ≤ n) and (a[i] <> x) do inc(i);if i=n+1 then <x нет в a> else <номер элемента – i>;

Поиск с барьером. Идея: барьерный элемент помечается n+1 элементом в a, тогда i:=1;a[n+1]:=x;while a[i]<>x do inc(i); if i=n+1 then <x нет в а>else<номер эл-та i>.

Т.е. число сравнений зависит от места нахождения искомого элемента. В среднем количество сравнений равно (n+1) div 2, в худшем случае, если элемента нет в массиве – N сравнений. Эффективность поиска – O(N).

Бинарный поиск. Определить место x в отсортированном (в порядке неубывания) массиве a. Суть поиска: делим a пополам и сравниваем x с элементом, который находится на границе 2х половин массива; по результату сравнения исключаем из рассмотрения одну из половин. Каждое сравнение уменьшает диапазон поиска в 2 раза. Следовательно общее количество сравнений имеет порядок O(N*log2(N)).

Процесс упорядочивания заданного множества объектов по заданному признаку называется сортировкой. Элементы множества можно сортировать по (не) возрастанию, (не) убыванию.

Сортировка вставкми. Всего выполним n-1 шаг. На каждом шаге массив разделен на 2 части : уже отсортированный и неотсортированный массивы. На i-ом шаге берем элемент a[i], ищем место его вставки в отсортированной части и вставляем его на это место. Все элементы после вставки сдвигаются на один. Эффективность метода: количество сравнений и присваиваний пропорционально n^2. Min количество сравнений и присваиваний появляется, когда массив полностью отсортирован. Max количество – массив отсортирован в обратном порядке.Сортировка выбором. ссмотрим весь массив и найдем в нем max элемент поменяем его местами с последним элементом. И так весь массив за вычетом сортированных элементов. Метод в среднем более эффективный, чем сортировка вставками. Если массив близок к отсортированному, то алгоритм сортировки вставками работает быстрее. Количество сравнений и обменов пропрорц n^2. Если массив изначально отсортирован, то количество присваиваний пропорц n. Оптимизация алгоритма: на каждом проходе можно искать в неотсортированной части min и max элементы. Min обменивать с первым, а max с последним в неосортированной части. Внешний цикл будет выполняться n div 2 раз.

Сортировка простым обменом («Пузырек»)

Просматривается массив слева направо. Сравниваем элементы: 1-й со 2-м, 2-й с 3-м, Если элементы в паре расположены неправильно, то обменяем их. В результате каждого прохода наибольший (наименьший) элемент оказывается на последнем (первом) месте в неотсортированной части. Всего n – 1 проход.Выполняется n – 1 просмотров на каждом i-м просмотре производится n – i сравнений. Общее количество равно n(n-i)/2. или O(n^2). Оптимизация алгоритма:

На некотором шаге, меньшем чем n – 1, массив может оказаться уже отсортированным. Т.е. не надо делать ни одного обмена. На каждом проходе можно запоминать информацию о том производились ли обмены. Если нет, алгоритм следует закончить. Внешний цикл будет циклом с условием.

Можно запоминать не только сам факт обмена, но и место последнего обмена и дальше не просматривать.

Большие элементы, находящиеся в левой части массива, попадут на свое место значительно быстрее, чем маленькие – из правой, т.е. каждый проход идет слева направо. Можно менять направление прохода через 1. Такая сортировка называется шейкер-сортировкой.