C++队列如何从小到大排序

avatar
作者
筋斗云
阅读量:0

要使用C++队列实现从小到大排序,可以使用以下步骤:

  1. 首先,将原始数据依次插入到队列中。

  2. 接下来,创建一个辅助队列,并将原始队列中的第一个元素插入到辅助队列中。

  3. 然后,从原始队列中取出第二个元素,并将其与辅助队列中的元素依次比较。如果原始队列中的元素比辅助队列中的元素小,则将其插入到辅助队列中的合适位置。如果原始队列中的元素比辅助队列中的元素大,则将辅助队列中的元素依次插入到原始队列中,并将原始队列中的元素插入到辅助队列中的合适位置。

  4. 重复步骤3,直到原始队列为空。

  5. 最后,辅助队列中的元素就是从小到大排序的结果。

以下是一个示例代码:

#include <iostream> #include <queue>  using namespace std;  void sortQueue(queue<int>& q) {     queue<int> temp;     while (!q.empty()) {         int current = q.front();         q.pop();         while (!temp.empty() && temp.back() > current) {             q.push(temp.back());             temp.pop();         }         temp.push(current);     }     q = temp; }  int main() {     queue<int> q;     q.push(5);     q.push(2);     q.push(8);     q.push(1);     q.push(3);      cout << "原始队列:";     while (!q.empty()) {         cout << q.front() << " ";         q.pop();     }     cout << endl;      sortQueue(q);      cout << "排序后的队列:";     while (!q.empty()) {         cout << q.front() << " ";         q.pop();     }     cout << endl;      return 0; } 

输出结果为:

原始队列:5 2 8 1 3  排序后的队列:1 2 3 5 8  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!