📖 Explanation
To minimize the average waiting time in a non-preemptive scheduling system, the Shortest Job First (SJF) algorithm must be used. SJF prioritizes tasks with the shortest execution times, which minimizes the cumulative waiting time by ensuring shorter processes complete early and do not block longer ones. Given the process burst times {5,18,9,12}, we sort them in ascending order: 5<9<12<18. Ordering the processes as 5,9,12,18 results in the minimum waiting time, as any other sequence would cause smaller processes to wait behind larger ones, increasing the average wait.