public void randomSortAllStudents(StudentList usedStudentList = null) { if (usedStudentList == null) { usedStudentList = getStudentListFromSeatList(); } updateSize(); if (usedStudentList.students.Count != size) { throw new Exception("Size miss matched"); } usedStudentList.resetAllUnused(); Seat i = head; foreach (int r in col) { for (int j = 0; j < r; j++) { i.stu = usedStudentList.retrieveOneRandomUnused(); i = i.next; } } }
public void randomSortAllStudentsWithExchange() { StudentList temp = getStudentListFromSeatList(); updateSize(); if (temp.students.Count != size) { throw new Exception("Size miss matched"); } temp.resetAllUnused(); StudentList front = StudentList.getHalf(temp, false); StudentList back = StudentList.getHalf(temp, true); Seat i = head; int frontIndex = 0; int backIndex = 0; foreach (int r in col) { for (int j = 0; j < r; j++) { if (frontIndex < front.students.Count) { i.stu = front.retrieveOneRandomUnused(); i = i.next; frontIndex++; } else { i.stu = back.retrieveOneRandomUnused(); i = i.next; backIndex++; } } } }