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

   2025-02-05 2500
核心提示:要使用C++队列实现从小到大排序,可以使用以下步骤:首先,将原始数据依次插入到队列中。接下来,创建一个辅助队列,并将原始队

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

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

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

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

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

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

以下是一个示例代码:

#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 

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言