用静态数组和结构体实现:
先用结构体定义进程的进程号,时间,优先级等属性,另外,我还加了一个属性“下标v”。首先将输入的进程按照其优先级的从高到低排序(这里我用的是冒泡排序),运行当前优先级最高的那个进程,由于每一次运行进程需要一个时间片,所以被运行的进程时间自减1,优先级自减1 。每一次运行完一个进程后,都要重新排序。如果运行完之后时间为0,即表示该进程结束,则将其优先级默认为-1,并将其放倒数组尾;如其时间不为0,则仍然按照优先级顺序,将其插到数组适当地位置。插入部分的算法:将当前进程的优先级和后一个比较,如果小于其,则swap;不然,则return。如果所有的进程的时间都为0,则停止处理机的调度,结束。
截图: