Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n))




Скачать 39.73 Kb.
НазваниеАлгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n))
Дата публикации03.12.2013
Размер39.73 Kb.
ТипДокументы
zadocs.ru > Информатика > Документы

  1. Алгоритмы

    1. понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) 

  2. Структуры данных 

    1. понимать основные структуры данных (это значит, уметь нарисовать структуру на листике и понимать сложность основных операций над структурой - вставка, удаление, чтение/поиск)

      • массив (скорее в сравнении со связным списком)

      • связный список (linked list)

      • max heap - мне кажется, это очень простая и важная структура данных

      • hash table (hash map) - эту структуру стоит знать досконально, поскольку она очень популярна в Java

    2. знать как реализовать в виде массива stack, queue

    3. знать основные представления графов в виде структур данных (имеется в виду матричная структура и массив списков - нужно понимать, когда какую использовать)

  3. Основы Java

    1. cтруктура программы на Java

      • файл *.java должен содержать один и только один public class (этот класс, конечно, может содержать внутренние public классы)

      • метод main

      • компиляция *.java в *.class

      • понятие classpath

      • jar файлы - всего лишь zip архивы с *.class файлами и файлом метаданных. jar может быть библиотекой (включаться в classpath) или же быть исполняемым - тогда в файле метаданных должен быть указан главный класс - тот, что содержит метод main

    1. основные типы Java

      • размер простых типов (внимане, char имеет размер 2 байта)

      • объекты и классы в Java (загруженный класс - тоже объект типа Class) 

    2. представление о JVM (виртуальной машине)

      • загрузка классов

      • управление паматью с помощью GC (garbage collector, сборщик мусора) вот хорошая статья с хабра - она практическая, я сейчас не могу найти теоретическую статью, объясняющую очистку памяти по поколению объектов (generational garbage collection) - потом обязательно найду, вот еще короткая статья по поколениям (она хоть и для IBM джавы, но объясняет вкратце), есть еще такая статья (в ней на картинках показаны области памяти - сильно в нее не углубляйся); вобщем, вот список понятий, которые нужно понимать

        • generations (поколения)

          • young

          • tenured

        • eden

        • permanent space (туда классы кладутся и некоторые другие вещи)

      • выполнение программы

        • стек, окна стека (для каждого потока свой стек)

        • передача параметров (простые типы по значению, объектные - по ссылке)

    1. основные концепции из программирования, используемые в Java

      • выделение пространств имен с помощью package (пакеты), import

      • ООП

        • наследование и полиморфизм

          • интерфейсы

          • классы и абстрактные классы

        • инкапсуляция (модификаторы доступа)

          • private

          • default (package-private)

          • protected

          • public

      • closures (first-class objects) - в Java это anonymous classes (анонимные классы)

      • immutability (immutable - неизменяемый) - объекты Integer, Long, etc. а также String (!!!) - не изменяемые в Java. Это очень важно знать (особенно по поводу String) как с точки зрения использования памяти, так и с точки зрения безопасности

    2. остальные ключевые слова

      • final 

        • для полей и локальных переменных

        • для методов

        • для классов

      • static

        • для полей класса

        • для методов

        • для внутренних классов - обратить внимание отдельно на статические и нестатические внутренние классы

    • коллекции Java - очень рекомендую просто открывать исходный код и читать - там просто офигенно все написано, расписана каждая непонятная строчка

      • LinkedList vs ArrayList

      • Map, Set

      • HashMap, TreeMap, LinkedHashMap (соответствующие Sets есть такие же точно, потому что Set - это Map с фиксированным value

      • Queue, остальные на выбор

    • методы equals и hashCode класса Object (они нужны для помещения объектов в HashMap/HashSet, equals нужен для остальных коллекций и для проверки равенства вообще) 

    • основы многопоточности

      • чем поток отличается от процесса

      • что и зачем нужно синхронизировать

      • что значит ключевое слово synchronized в Java (для метода и в виде блока, т.е. public void synchronized m() и synchronized(this){} )

      • как создать поток в Java (Runnable, Thread, ExecutionService)

    • reflection - здесь все легко, много времени не надо на это тратить; это просто инструмент, который позволяет получать абсолютно любую информацию о классе, объекте, методах, а также хачить: к примеру, выполнять private методы

    • типы (нужно знать, что, к примеру, Integer extends Number, а List никак не относится к List - это просто разные типы)

    • @annotations - здесь все элементарно. Аннотация - это просто маркер, который можно ставить в тех местах, которые указаны в объявлении самой аннотации. Аннотация ничего не делает, но очень удобна для конфигурации, а также иногда для документирования

Добавить документ в свой блог или на сайт

Похожие:

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconЛекция. Алгоритмы
Для решения задач существуют определенные правила, напри­мер, правила сложения и вычитания дробей, порядок выполнения математических...

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconСтруктуры и алгоритмы обработки данных
Структуры и алгоритмы обработки данных: учебно-метод пособие для студ спец. «Программное обеспечение информационных технологий» всех...

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconУчебное пособие Москва Издательский Дом мисиС 2011
Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся...

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) icon3 Базовые алгоритмы реализации операции целочисленного умножения...
Разработка алгоритмов и микропрограмм реализации операций двоичной арифметики для

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconКризис в созависимых отношениях. Принципы и алгоритмы консультирования речь
Е60 Кризис в созависимых отношениях. Принципы и алгоритмы консультирования. — Спб.: Речь, 2004. — 368 с

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconКризис в созависимых отношениях. Принципы и алгоритмы консультирования речь
Е60 Кризис в созависимых отношениях. Принципы и алгоритмы консультирования. — Спб.: Речь, 2004. — 368 с

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconПрограмма CollTest08. Инструкция
Имитация лабораторного эксперимента, алгоритмы обработки результатов и оформления отчетов

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconЧто не относиться к элементам экспертной системы?
Не могут быть построены строгие алгоритмы или процедуры, но существуют эвристические методы решения

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconНазвание дисциплины
В результате изучения дисциплины «Структуры и алгоритмы обработки данных» студент должен

Алгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n)) iconМетодическое пособие для студентов. Учебные алгоритмы
В современных условиях реформирования страны повышаются требования к уровню подготовки средних медицинских работников

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
zadocs.ru
Главная страница

Разработка сайта — Веб студия Адаманов