Когда вы загружаете изображение, вы должны сохранить это изображение в папке в каталоге вашего проекта, а затем сохранить этот путь в вашей базе данных, например, ваш путь: 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
}
}
?>
@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;
}
}
Можно хотеть попробовать совершенно другой подход, такой как последовательное хеширование.
Посмотрите здесь для относительно легкого введения в тему: http://www8.org/w8-papers/2a-webserver/caching/paper2.html
(Существуют более глубокие бумаги, доступные также, начиная с Karger и др.),
Я создал рабочую реализацию последовательного хеширования в Erlang, который можно исследовать, если Вы желаете:
Я думаю, что Ваш анализ является неправильным:
Как сделал Вы прибываете в O (n!)?
Можно отсортировать список [O (n LG n) в числе детей], так, чтобы на передней стороне у Вас были дети со слишком большой работой, и в детях конца со слишком небольшой работой. Затем пересеките список от обоих концов одновременно: один итератор указывает ребенку с избыточными данными, другим ребенку с отсутствием данных. Передайте данные и переместите вперед или один итератор или другой назад.
Код, который Вы отправили, имеет сложность O (n^2). Однако, возможно сделать это в линейное время, как malach заметил, где n является количеством объектов в дочернем списке.
Рассмотрите: внутренний цикл имеет n повторения, и он выполняется в большинство n раз. n*n = n^2.