Сбалансированный алгоритм распределения

Когда вы загружаете изображение, вы должны сохранить это изображение в папке в каталоге вашего проекта, а затем сохранить этот путь в вашей базе данных, например, ваш путь: C: \ xampp \ htdocs \ leadstart \ Bestleads \ landing \ Health \ new \ img \ logo.png

сохраните logo.png в своей базе данных, и когда вам нужно это просмотреть

    <?php
if (isset(

Когда вы загружаете изображение, вы должны сохранить это изображение в папке в каталоге вашего проекта, а затем сохранить этот путь в вашей базе данных, например, ваш путь: C: \ xampp \ htdocs \ leadstart \ Bestleads \ landing \ Health \ new \ img \ logo.png

сохраните logo.png в своей базе данных, и когда вам нужно это просмотреть

[110]GET['id'])) { $id =

Когда вы загружаете изображение, вы должны сохранить это изображение в папке в каталоге вашего проекта, а затем сохранить этот путь в вашей базе данных, например, ваш путь: C: \ xampp \ htdocs \ leadstart \ Bestleads \ landing \ Health \ new \ img \ logo.png

сохраните logo.png в своей базе данных, и когда вам нужно это просмотреть

[110]GET['id']; $query1 = mysqli_query($connection,"SELECT cimage.cimgid,cimage.companyID,cimage.cimg1 FROM cimage where companyID=$id"); while ($row2 = mysqli_fetch_array($query1)) { ?> <img src="http://127.0.0.1/leadstart/Bestleads/landin/Health/new/img/<?php echo $row2['cimg1'] ?> "/> <!-- Displaying Data Read From Database --> <?php } } ?>
6
задан Hank Gay 26 September 2008 в 15:57
поделиться

4 ответа

@zvrba: Вы даже не должны сортировать список. При пересечении списка второй раз просто перемещает все объекты с меньше средней рабочей нагрузкой в конец списка (можно сохранить указатель на последний объект в первом обходе). Порядок не должен быть прекрасным, он просто изменяется, когда итераторы должны быть увеличены или уменьшены на Вашем последнем шаге.

См. предыдущий ответ

Последний шаг посмотрел бы что-то как:

На втором шаге сохраняют указатель на первый объект с меньше, чем средней рабочей нагрузкой в child2 (для предотвращения необходимости иметь двойной список ссылок).

for each child in list {
  if child2 == nil then assert("Error in logic");
  while child.workload > avg + 1 {
    sendwork(child, child2, min(avg + 1 - child2.workload, child.workload - (avg + 1)))
    if child2.workload == avg + 1 then child2 = child2.next;
  }
}
4
ответ дан 10 December 2019 в 02:56
поделиться

Можно хотеть попробовать совершенно другой подход, такой как последовательное хеширование.

Посмотрите здесь для относительно легкого введения в тему: http://www8.org/w8-papers/2a-webserver/caching/paper2.html

(Существуют более глубокие бумаги, доступные также, начиная с Karger и др.),

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

http://distributerl.googlecode.com/svn/trunk/chash.erl

2
ответ дан 10 December 2019 в 02:56
поделиться

Я думаю, что Ваш анализ является неправильным:

  • обход через список для обнаружения среднего числа является O (n)
  • вхождение в списки детей со слишком многими или очень небольшим числом блоков данных также O (n)
  • движущиеся данные пропорциональны на сумму данных

Как сделал Вы прибываете в O (n!)?

Можно отсортировать список [O (n LG n) в числе детей], так, чтобы на передней стороне у Вас были дети со слишком большой работой, и в детях конца со слишком небольшой работой. Затем пересеките список от обоих концов одновременно: один итератор указывает ребенку с избыточными данными, другим ребенку с отсутствием данных. Передайте данные и переместите вперед или один итератор или другой назад.

2
ответ дан 10 December 2019 в 02:56
поделиться

Код, который Вы отправили, имеет сложность O (n^2). Однако, возможно сделать это в линейное время, как malach заметил, где n является количеством объектов в дочернем списке.

Рассмотрите: внутренний цикл имеет n повторения, и он выполняется в большинство n раз. n*n = n^2.

1
ответ дан 10 December 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: