Hallo stefaniemayer088,
wir versuchen dir hier ernsthaft zu Helfen, aber du speist uns nur mit "JA" und "NEIN" ab. Und obwohl sheel dich schon darauf hingewiesen hat, hast du das schon wieder gemacht. Ich empfinde das als sehr schnippisch uns (und vor allem auch ihm) gegenüber, und bitte dich jetzt ausdrücklich um etwas mehr Respekt!
Aber nun zu deinem Problem:
Da du den Algorithmus, soweit ich das mitbekommen habe, selbst entwerfen möchtest, musst du dir natürlich Gedanken machen was er eigentlich tun soll. Du hast geschrieben, dass er Überschneidungen verhindern soll. Ich schätze das heißt dann, dass sowohl die Lehrkräfte als auch die Schüler nicht an zwei Orten gleichzeitig sein können. Der Algorithmus hierfür wäre noch überschaubar. Bist du damit dann schon zufrieden?
Denn der Grund weshalb sheel mehrfach nach Optimierungen gefragt hat, ist folgender: Nehmen wir an, du hast insgesamt 6 Blöcke am Tag zur Verfügung (A,B,C morgens; A,B,C abends - wie es an vielen Unis üblich ist). Wenn der Algorithmus nur Überschneidungen verhindert, kann es passieren, dass ein Kurs in den C-Block abends gelegt wird, obwohl er auch im B-Block morgens stattfinden könnte. Das ist erstmal kein Problem, aber wenn jetzt ein anderer Kurs im A-Block morgens stattfinden muss, ist das für die Studis und Dozenten sehr unangenehm...
Hier wäre dann eine Optimierung fällig (eine Mischung aus "Kurse möglichst früh legen" und "Kurse möglichst kompakt legen").
Grüße Technipion