两个任务优先级一样怎么办(C++)
两个任务优先级相同时,通常约定【0】。
第一个被处理的是哪个任务
四个任务和它们的优先级(数字越大越急)。运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <
写一个按优先级出队
补全 pop_max:取出并返回优先级最高的任务名,优先级相同时取先进来的那个。补全后输出第一个被处理的任务。 (本题用 g++ -std=c++17 -O0 编译。)
全部调度完顺序是什么
同一个 pop_max。把四个任务全部处理完,把处理顺序拼起来输出(用 / 隔开)。 (本题用 g++ -std=c++17 -O0 编译。)
同级要先来先服务
同一个 pop_max,这次换一批任务:扩容先进来、告警后进来,两个都是优先级 5。把前两个被处理的拼起来输出——写成 >= 比较的话这里就会反。 (本题用 g++ -std=c++17 -O0 编译。)
插队来了个更急的
四个任务排着队的时候,又来了一个优先级 6 的「回滚」。补全 pop_max 后输出第一个被处理的任务。 (本题用 g++ -std=c++17 -O0 编译。)
一个够用的堆至少要有什么
手写一个够用的大顶堆,至少要有【0】。
插入弹出为何是 O(log n)
第 1 步:一个建好的大顶堆 第 2 步:弹出 24,剩下的重新成堆 第 3 步:弹出 23,剩下的重新成堆 第 4 步:弹出 17,剩下的重新成堆 第 5 步:弹出的顺序:从大到小 24 23 15 13 17 24 23 17 13 1
这个堆里有几个元素
运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <utility> #include
第一步数组和上浮插入
最终作品第一步:用一个 vector<int> 当堆,写出大顶堆的 push_up(追加到末尾 + 上浮)。五个数插完之后输出堆顶(堆空着的话输出 空)。 (本题用 g++ -std=c++17 -O0 编译。)