Eine Reihe von Studenten möchte in Abschnitte für eine Klasse kommen, einige sind bereits für einen Abschnitt angemeldet, wollen aber den Abschnitt wechseln, damit alle auf die Wartelisten kommen. Ein Student kann nur dann in einen neuen Bereich kommen, wenn jemand aus diesem Bereich aussteigt. Keine Schüler sind bereit, einen Abschnitt, in dem sie sich bereits befinden, fallen zu lassen, es sei denn, sie können sicher sein, in einen Bereich zu gelangen, auf den sie warten. Die Warteliste für jede Sektion ist "first come first serve".Das "Wartelistenproblem"
Holen Sie so viele Schüler in ihre gewünschten Abschnitte wie Sie können.
Das angegebene Problem kann schnell zu einem festgefahrenen Szenario führen. Meine Frage ist; Gibt es bekannte Lösungen für dieses Problem?
Eine triviale Lösung jeden Abschnitt wiederum und zwingt den ersten Student aus der Warteliste in den Abschnitt und dann überprüfen, um zu nehmen wäre, wenn jemand herausfallen am Ende, wenn die Dinge (O (n) oder mehr gelöst werden auf der Nummer des Abschnitts). Dies würde in einigen Fällen funktionieren, aber ich denke, dass es bessere Möglichkeiten geben könnte, mehr als einen Schüler in einen Abschnitt zu zwingen (O (n) oder mehr auf die Schüleranzahl) und/oder mehr als einen Abschnitt gleichzeitig zu bearbeiten (O (schlecht) :-)
Haha O (schlecht) <- schön. –
Markiert als "Hausaufgaben". Das sind vielleicht nicht deine Hausaufgaben, aber es könnte jemandes irgendwann sein, da ich diese Frage schon vor ein paar Jahren im College hatte. –
geändert zu Nicht-meine-Hausaufgaben, um die Realität besser widerzuspiegeln – BCS