Java简单的排课程表方案算法

第一次提问,自己也还在学习,如有不对的地方感谢指正。
暑假在家想用Java写一个简单的排课。
每个Course有多个Sessions,Session之间已有确认互相是否冲突的方法。
现在想列举出所有不冲突的排课方案,自己现在写的是个Session的2d array,同时有个Course的array,每个Course有个Session array。
一开始想的是一节一节课加进去,检验是否冲突(虽然感觉好蠢)
可是写到后面发现自己算法没想好,如何判断这个方案已经在列表中,如何避免重复,某节课所有session与之前的课全冲突如何处理等等
请问大概算法应该是怎样的呢?

http://download.csdn.net/detail/xiaobaiqingwa/2811524