ВЕРНУТЬСЯ К ОСНОВАМ

Пейджинг/разбиение на разделы — изучите основные уравнения, чтобы сделать это проще

Изучите математические уравнения разбиения на страницы/разделы и способы их применения в коде JavaScript и .NET C#.

Концепция Paging или Partitioning используется во многих областях. Когда у вас есть набор элементов, и вы хотите разделить их поровну между какими-то контейнерами или группами, вы думаете о подкачке или разбиении на разделы, но, возможно, вы еще не распознаете это…

Основные цели этой истории:

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


Отказ от ответственности

  1. Если вы ожидаете найти объяснения концепции подкачки в конкретных приложениях, таких как управление памятью операционной системы или файловая система,… тогда вы читаете не ту историю.
  2. Всякий раз, когда упоминается «Страница» или «Пейджинг», допустимы «Раздел» и «Разделение». Поэтому для краткости я буду использовать «Page» и «Paging».

Вернуться к основам

Лучший способ объяснить пейджинг — обратиться к примеру. Предположим, у нас есть коллекция из 10 предметов, любых предметов, может быть, бутылок, карандашей, бананов… всего, что делает вас счастливыми.

Теперь мы хотим разделить эти 10элементов на группы, где каждая группа содержит 3элемента.

Если мы сделаем это вручную, у нас будут распределены элементы, как показано на изображении ниже.

Это было легко, верно?

Давайте объясним, что у нас есть в таблице выше.

  1. Первый элемент, содержащий 0 в качестве нулевого индекса, будет найден в позиции 0 с нулевым индексом внутри страницы >0 Нулевой индекс.
  2. Второй элемент с нулевым индексом 1 будет находиться в позиции нулевого индекса 1 на странице >0 Нулевой индекс.
  3. Третий элемент, содержащий 2 в качестве нулевого индекса, будет находиться в позиции 2 с нулевым индексом внутри страницы >0 Нулевой индекс.
  4. Четвертыйэлемент, содержащий 3 в качестве нулевого индекса, будет находиться в позиции 0 с нулевым индексом внутри страницы >1 Нулевой индекс.
  5. Пятый элемент с нулевым индексом 4 будет находиться в позиции 1 с нулевым индексом внутри страницы >2 Нулевой индекс.
  6. И так далее,…

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

Формула

Проведя некоторый анализ, мы можем прийти к следующей формуле:

Позволь мне объяснить; когда вы делите нулевой индекс элемента на размер страницы, вы получаете две вещи:

  1. Результат, который будет представлять нулевой индекс страницы.
  2. Остаток, который будет представлять Нулевой индекс элемента на странице.

Ты мне не веришь? ок, покажу…

Момент истины

Применим формулу к нашему примеру и посмотрим, что из этого получится.

Думаю, теперь ты мне веришь. Доказано, что формула работает как шарм.

Дальнейший анализ

Доказав формулу, давайте проведем дальнейший анализ.

Формула может быть преобразована в форму ниже:

Нулевой индекс элемента = (Нулевой индекс страницы * Размер страницы) + (Нулевой индекс элемента на странице )

Это означает, что если у нас есть значение Нулевой индекс страницы и значение Размер страницы, нам нужно знать Нулевой индекс. > первого элемента и последнего элемента на этой странице, мы можем использовать приведенное выше уравнение следующим образом.

Нулевой индекс первого элемента
= (Нулевой индекс страницы * Размер страницы) + Минимум (Нулевой индекс элемента на странице)
= (Нулевой индекс страницы * Размер страницы) + 0
= (Нулевой индекс страницы * Размер страницы)

Нулевой индекс последнего элемента
= (Нулевой индекс страницы * Размер страницы) + Максимум (Нулевой индекс элемента на странице)
= (Нулевой индекс страницы * Размер страницы) + (Размер страницы — 1)

Но обратите внимание: если рассчитанный нулевой индекс последнего элемента больше, чем индекс последнего элемента во всей коллекции, тогда берется меньшее число, которое является индексом последний предмет во всей коллекции.

Ты опять мне не веришь?

Для проверки этих уравнений применим на нашем примере:

  • На первой странице (первый элемент Zero-Index = 0 * 3 = 0) и (последний элемент Zero-Index = (0 * 3) + (3–1) = 2)
  • На второй странице (первый элемент Zero-Index = 1 * 3 = 3) и (последний элемент Zero-Index = (1 * 3) + (3–1) = 5)
  • На третьей странице (первый элемент Zero-Index = 2 * 3 = 6) и (последний элемент Zero-Index = (2 * 3) + (3–1) = 8)
  • На четвертой странице (первый элемент с нулевым индексом = 3 * 3 = 9) и (последний элемент с нулевым индексом = (3 * 3) + (3–1) = 11, что больше максимального доступного индекса элемента (9). ), следовательно, последний элемент Zero-Index = 9)

Давайте посмотрим код

Доказав все уравнения, давайте посмотрим, как применить их в коде. Я предоставлю две реализации: одну на JavaScript и другую на .NET C#.

JavaScript-код

Применение уравнений в виде функции расширения к JavaScript массиву.

Теперь, выполняя этот код

Вернулся бы

И, выполняя этот код

Вернулся бы

Код .NET С#

Применение уравнений в виде метода расширения к .NET C# List.

Теперь, выполняя этот код

Вернулся бы

И, выполняя этот код

Вернулся бы

Заключительные слова

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

Вы также можете использовать примеры кода для применения в своем собственном проекте, используя любой язык или платформу, которую вы используете.

Надеюсь, вы нашли этот контент полезным. Если вы хотите поддержать:

▶ Если вы еще не являетесь участником Medium, вы можете использовать мою реферальную ссылку, чтобы я мог получать часть ваших сборов от Medium. > вы ничего не платите.
▶ Подпишитесь на мою рассылку новостей, чтобы получать рекомендации, руководства, подсказки, подсказки и многое другое прямо на ваш почтовый ящик.

Другие источники

Это другие ресурсы, которые могут вам понравиться.







Вот и все, надеюсь, вам было так же интересно читать эту историю, как мне было ее писать.