Записки Kotlin Developer
79 subscribers
47 photos
5 videos
5 files
30 links
Hi, я Кирилл, Kotlin разработчик👋

Тут пишу заметки и tutorial: Kotlin, алгоритмы, Functional style, инфрастуктуру, микросервисы.

Начинаем с базы и дойдем до вершин📈

Subscribe, Let's upgrade skills together🤝

Автор: @kyrillP
Download Telegram
Быстрая сортировка на Kotlin

Идея алгоритма
1)Выбирается опорный элемент — им может быть любой элемент массива (я в качестве опорного выбираю средний элемент массива).
2)Все остальные элементы массива сравниваются с опорным и те, которые
меньше него, ставятся слева от него, а которые больше или равны —
справа.
3)Для двух получившихся блоков массива (меньше опорного, и больше либо
равны опорному) производится точно такая же операция — выделяется
опорный элемент и всё идёт точно так же, пока в блоке не останется один
элемент.

Решил написать этот пост так как наболело. Сейчас читаю Грокаем алгоритмы, Адитья Бхаргава . А там этот алгоритм реализован на Python, ну и выглядит он классно и лаконично. Бросил себе вызов и написал на Kotlin в том же духе.
Красота же?😂
Подсчёт суммы элементов массива через Рекурсию

Вообще эта задача тоже меня напрягла, расстроил тот факт, что в Kotlin нельзя получить срез массива, как в Python...
В Python чтобы получить список элементов массива без самого первого элемента можно написать вот так:
list[1:]

В Kotlin есть несколько вариантов:
list.takeLast(list.size - 1)
list.stream().skip(1).toList()
Не отрицаю, что есть ещё другие способы, это первое что пришло в голову.

P.S. Вообще это не повод уходить в Python, есть множество других классных концепций за которые я полюбил Kotlin
👍2
Хеш-табли́ца

Cтруктура данных, реализующая интерфейс ассоциативного массива. Представляет собой эффективную структуру данных для реализации словарей, а именно, она позволяет хранить пары (ключ, значение)

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

Для предотвращения коллизий необходимы:
- Хорошая хеш-функция
- Низкий коэффициент заполнения.

Чтобы избежать всех этих проблем с производительностью используйте уже готовые реализации структур данных, а не изобретайте свой велосипед

Почти во всех современных языках присутствуют классы, реализующие хеш-таблицы.

Java и Kotlin
HashMap — реализация интерфейса ассоциативного массива с использованием хеш-таблицы,
HashSet — реализация интерфейса множества с использованием хеш-таблицы,
LinkedHashMap — потомок класса HashMap. Позволяет просматривать значения в том порядке, в котором они были добавлены.

Python
dict — реализация интерфейса ассоциативного массива с использованием хеш-таблицы,
set — реализация интерфейса множества с использованием хеш-таблицы.
Подробнее почитать как работать с ними в Kotlin можно тут:
https://metanit.com/kotlin/tutorial/7.4.php
7
Media is too big
VIEW IN TELEGRAM
Настройка окружения для программирования на Kotlin

Хочу сделать небольшое отступление от алгоритмов, и вернуться к тому, с чего следовало начать.
В этом видео я рассказал о том, что должно быть у вас установлено, чтоб дальше двигаться со мной и иметь возможность работать с кодом так, как делаю это я.
Ссылка для скачивания: https://www.jetbrains.com/ru-ru/idea/download/
Kotlin notebook: https://plugins.jetbrains.com/plugin/16340-kotlin-notebook
Пошаговая дока: https://kotlinlang.org/docs/get-started-with-kotlin-notebooks.html

p.s Уже скоро я начну нормально обрабатывать видео, ставить красивые превью, все будет😂
👍4
Media is too big
VIEW IN TELEGRAM
Структура данных Очередь

В этом видео рассматриваю такую структуру данных, которая называется "Очередь" и её использование в Kotlin.
Интересный факт, что вы можете использовать как и очередь из Java, так и очереди из стандартной библиотеки Kotlin.collection, в видео так же попытался объяснить, что в итоге лучше использовать.

Бонусом, даю домашку и жду решения от всех тех, кто только вливается в Kotlin. В ДЗ вам нужно будет решить реальный практический кейс, на тему разумных МЕГА доходных инвестиций
👍5
Forwarded from СБЕР IT Сочи
Книжная полка нашего резидента: что почитать разработчику? На какие книги обратить внимание новичку?

🌟Подборкой книг поделился Кирилл Пахтусов, Java/Kotlin backend-разработчик айти-центра Сбера в Сочи
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Всем привет.
Сегодня в планах сделать контент на тему, BSF, Breadth-First-Search и графов. Для демонстрации работы написал программу, где Dependcy Injection на Koin, чтение json при помощи Klaxon. Поставьте любые реакции если стоит отвлечься и сделать обзор на эти библиотеки, ну или хотя бы рассказать почему я их выбрал...
👍5🔥32🤔2😱2