morfizm (morfizm) wrote,
morfizm
morfizm

Организация вещей

Меня спросили, почему я вешаю футболки на вешалки (для земляков-соотечественников: тремпели).

Отвечаю. По целому ряду причин:

1. Для скорости доступа. Скорость извлечения и добавления в любое место структуры под названием "шкаф с вешалками" - O(1). Для стека имеем O(N).

2. Для лимитирования количества вещей, чтобы их количество было гарантированно manageable. Шкаф с вешалками один, а разных ящиков, куда можно пихать вещи, много. Соответственно, с ящиками куда легче допустить бесконтрольное размножение вещей.

3. Для уменьшения когнитивной нагрузки. Когда все вещи инкапсулированы в одного типа wrapper class (класс "вешалка", на которой может висеть одна вещь), доступ к ним быстрее, чем когда они в разных ящиках, или часть на вешалке, часть в ящиках. У меня на вешалках футболки, штаны и рубашки, а в ящиках только трусы и носки.

4. Для того, чтобы я мог позволить себе иметь разные вещи. Чтобы получить O(1) для ящика, там должны быть одинакового типа вещи. Соответственно, трусы и носки годятся для этой цели: они одинаковые*, и мне никогда не потребуется доставать что-то из середины или класть в середину. Я всегда работаю только с верхним элементом, к которому доступ O(1). А вот рубашек у меня несколько (три штуки целых!). Футболок два типа. Нужен контейнер с быстрым случайным доступом.

*) Примечание для тех, кто знает горькую правду. На самом деле, трусы у меня не одинаковые, а разноцветные. Но это лишь по той причине, что я пока не нашёл одинаковых по приемлемой цене, лучшее что я нашёл - вот это, $4 за шт. Но я делаю вид, что они совершенно одинаковые и взаимозаменяемые, и всегда беру первые попавшиеся сверху ящика, так что в контексте обсуждения эффективности поставленных процессов их разноцветность не играет роли.
Tags: 1, life, me, order, software development
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 22 comments