
- •Ibm выпускает свою первую коммерческую систему - ibm 701. Всего было построено 19 машин.
- •3. Системы счисления. Основные позиционные системы счисления
- •6. Способы представление изображений
- •7. Дополнительный код чисел
- •8. Представление чисел в формате с плавающей точкой
- •9. Методы сжатия информации
- •Метод относительного кодирования
- •Метод кодирования длины серий
- •Частотно-зависимое кодирование
- •Метод Лемпеля-Зива
- •10. Коды с обнаружением и исправлением ошибок
- •11. Основные понятия алгебры логики
- •12. Метод Куайна-Маккласки
- •13. Метод карт Карно
- •16. Двоичный сумматор: назначение, условное обозначение и пример реализации
- •24. Алгоритм обменной сортировки
- •25. Алгоритм сортировки выбором
- •26. Алгоритм последовательного поиска
- •27. Двоичного поиска
- •28. Базовые алгоритмические конструкции
- •29. Итерационные и рекурсивные алгоритмы
- •30. Типы и структуры данных
- •31. Критерии оценки эффективности алгоритмов
- •33. Абстрактная машина Тьюринга
- •35. Модульная арифметика
- •36. Криптография с использованием открытых ключей
- •38. Языки и парадигмы программирования
- •39. Организация основной памяти вычислительной машины
- •40. Устройства и характеристики внешней памяти вычислительной машины
- •Flash-память
- •41. Основные принципы построения вычислительной машины.
- •43. Архитектура вычислительной машины
- •Cisc- и risc-архитектура компьютеров
- •Способы организации вычислительного процесса
- •44. Классификация программного обеспечения
- •47. Требования, предъявляемые к компьютерным сетям
- •48. Концепция распределения ресурсов сети
- •49. Топология компьютерных сетей
- •50. Адресация компьютеров
- •51. Модель взаимодействия открытых систем
- •52. Функции уровней модели взаимодействия открытых систем
- •53. Сетевые технологии
- •54. Основные виды линий связи
- •Проводные линии связи
- •Беспроводные линии связи
- •55. Коммуникационное оборудование компьютерных сетей
- •56. Структура Интернета
- •57. Стек протоколов tcp/ip
- •59. Основные службы Интернета
- •60. Адресация ресурсов Интернета
- •64. Реляционная модель данных
- •65. Операции реляционной алгебры
- •67. Целостность данных, первичный и внешний ключи
- •Участники процесса разработки по
24. Алгоритм обменной сортировки
Простая обменная сортировка [в просторечии называемая "методом пузырька"] для массива M[0], M[1], ..., M[n-1] работает следующим образом. Начиная с конца массива сравниваются два соседних элемента [M[n-1] и M[n-2]]. Если выполняется условие M[n-2] >M[n-1], то значения элементов меняются местами. Процесс продолжается для M[n-2] иM[n-3] и т.д., пока не будет произведено сравнение M[1] иM[0]. Понятно, что после этого на месте M[0] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются M[2] и M[1]. И так далее. На последнем шаге будут сравниваться только текущие значения M[n-1] и M[n-2]. Понятна аналогия с пузырьком, поскольку наименьшие элементы [самые "легкие"] постепенно "всплывают" к верхней границе массива. Ниже приведен пример реализации алгоритма простой обменной сортировки:
function Grade (Array[], LengthOfArray) { if (LengthOfArray < 2) then return Array[]; else { LimitIndex:=1; while (LimitIndex < LengthOfArray) do { CurrentIndex:= LengthOfArray-1; while (CurrentIndex > 0) do { if (Array[CurrentIndex-1] > Array[CurrentIndex]) then { Temp:= Array[CurrentIndex-1]; Array[CurrentIndex-1]:= Array[CurrentIndex]; Array[CurrentIndex]:=Temp; } CurrentIndex:= CurrentIndex-1; } LimitIndex:= LimitIndex+1; } return Array[]; } }
25. Алгоритм сортировки выбором
При сортировке массива M[0], M[1], ..., M[n-1] методом простого выбора среди всех элементов находится элемент с наименьшим значением M[i], и M[0] и M[i] обмениваются значениями. Затем этот процесс повторяется для получаемых подмассивов M[1], M[2], ...,M[n-1], ... M[j], M[j+1], ..., M[n-1] до тех пор, пока мы не дойдем до подмассива M[n-1], содержащего к этому моменту наибольшее значение.
function Grade (Array[], LengthOfArray) { if (LengthOfArray < 2) then return Array[]; else { FirstIndex:=1; while (FirstIndex < LengthOfArray) do { i:=FirstIndex; MinValue:= Array[i-1]; MinIndex:= i-1; while (i < LengthOfArray) do { if (MinValue > Array[i]) then { MinValue:= Array[i]; MinIndex:= i; } i:=i+1; } if (MinIndex <> (FirstIndex-1)) then { Array[MinIndex]:= Array[FirstIndex-1]; Array[FirstIndex-1]:= MinValue; } FirstIndex:=FirstIndex+1; } return Array[]; } }
26. Алгоритм последовательного поиска
Решение задачи поиска можно получить, воспользовавшись алгоритмом последовательного поиска. Псевдокод данного алгоритма представлен ниже. Алгоритм возвращает индекс элемента массива Array[], значение которого равноValue, когда такой элемент существует, илиNull, когда такого элемента в массиве нет. Предполагается, что массив имеетLengthOfArray элементов.
function Search(Value, Array[], LengthOfArray) { if (LengthOfArray < 1) then return Null; else { CurrentIndex:=0; while (Value > Array[CurrentIndex] and CurrentIndex <LengthOfArray) do CurrentIndex:= CurrentIndex+1; if (Array[CurrentIndex]=Value) then return CurrentIndex; else return Null; } }