当前位置: 首页 > news >正文

如何做一家专门卖零食的网站北京seo排名优化网站

如何做一家专门卖零食的网站,北京seo排名优化网站,成功备案的网站增加域名,重庆手机网站开发1.相关描述 随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。 2.相关界面 3.相关代码 widget.cpp #include "widget…

1.相关描述

随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。

 2.相关界面

3.相关代码

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include "tgeneratenum.h"
#include "tbubblesort.h"
#include "tquicksort.h"
#include <QDebug>
#include <QThreadPool>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);qDebug() << "主线程:" << QThread::currentThread();/********************  多线程的使用方法一 ****************/TGenerateNum *gen = new TGenerateNum;    // 继承QThread类/******************* 多线程的使用方法二 **********************/QThread *bubbleThread = new QThread;TBubbleSort *bubble = new TBubbleSort;bubble->moveToThread(bubbleThread);/******************* 多线程的使用方法三 线程池的使用 **********************/TQuickSort *quicksort = new TQuickSort;QThreadPool::globalInstance()->setMaxThreadCount(10);// 按钮的信号槽connect(ui->btnStart, &QPushButton::clicked, this, [=](){gen->setCnt(10000);gen->start();});// 生成随机数connect(gen, &TGenerateNum::sendList, this, [=](QVector<int> list){quicksort->setList(list);QThreadPool::globalInstance()->start(quicksort);bubbleThread->start(); // 开启冒泡排序线程for(int i = 0; i < list.size(); i++){ui->listWidgetGenerate->addItem(QString::number(list[i]));}});connect(gen, &TGenerateNum::sendList, bubble, &TBubbleSort::working);connect(bubble, &TBubbleSort::sendList, this, [=](QVector<int> list){for(int i = 0; i < list.size(); i++){ui->listWidgetBubbleSort->addItem(QString::number(list[i]));}});connect(quicksort, &TQuickSort::sendList, this, [=](QVector<int> list){for(int i = 0; i < list.size(); i++){ui->listWidgetQuickSort->addItem(QString::number(list[i]));}});// 释放内存connect(this, &Widget::destroyed, this, [=](){gen->quit();gen->wait();gen->deleteLater();bubbleThread->quit();bubbleThread->wait();bubbleThread->deleteLater();bubble->deleteLater();});
}Widget::~Widget()
{delete ui;
}

生成随机数:

tgeneratenum.h

#ifndef TGENERATENUM_H
#define TGENERATENUM_H#include <QObject>
#include <QThread>class TGenerateNum : public QThread
{Q_OBJECT
public:TGenerateNum(QObject *parent=nullptr);void setCnt(qint32 cnt);// QThread interface
protected:void run() override;
signals:void sendList(QVector<int> list);private:qint32 m_cnt;
};
#endif // TGENERATENUM_H

tgeneratenum.cpp

#include "tgeneratenum.h"
#include <QRandomGenerator>
#include <QVector>
#include <QElapsedTimer>
#include <QDebug>TGenerateNum::TGenerateNum(QObject *parent):QThread(parent) {}void TGenerateNum::setCnt(qint32 cnt)
{m_cnt = cnt;
}void TGenerateNum::run()
{qDebug() << "生成随机数线程地址:" << QThread::currentThread();QElapsedTimer time;time.start();QVector<int> list;for(int i = 0; i < m_cnt; i++){int num = QRandomGenerator::global()->bounded(100000);list.push_back(num);}int milsec = time.elapsed();qDebug() << "生成" << m_cnt << "个随机数总共用时:" << milsec << "毫秒";emit sendList(list);
}

生成随机数,需要加时间种子

冒泡排序:

tbubblesort.h

#ifndef TBUBBLESORT_H
#define TBUBBLESORT_H#include <QObject>class TBubbleSort : public QObject
{Q_OBJECT
public:explicit TBubbleSort(QObject *parent = nullptr);void working(QVector<int> list);
signals:void sendList(QVector<int> list);
private:void bubbleSort(QVector<int>& list);QVector<int> m_list;
};#endif // TBUBBLESORT_H

tbubblesort.cpp

#include "tbubblesort.h"
#include <QElapsedTimer>
#include <QDebug>
#include <QThread>TBubbleSort::TBubbleSort(QObject *parent): QObject{parent}
{}void TBubbleSort::working(QVector<int> list)
{qDebug() << "冒泡线程地址:" << QThread::currentThread();QElapsedTimer time;time.start();this->bubbleSort(list);int milsec = time.elapsed();qDebug() << "冒泡排序总共用时:" << milsec << "毫秒";emit sendList(list);
}void TBubbleSort::bubbleSort(QVector<int> &list)
{for (int i = 0; i < list.size(); i++){for (int j = 1; j < list.size()-i; j++){if (list[j - 1] > list[j]){int temp = list[j - 1];list[j - 1] = list[j];list[j] = temp;}}}
}

快速排序:

tquicksort.h

#ifndef TQUICKSORT_H
#define TQUICKSORT_H#include <QObject>
#include <QRunnable>class TQuickSort : public QObject, public QRunnable
{Q_OBJECT
public:explicit TQuickSort(QObject *parent = nullptr);void setList(QVector<int> list);
signals:void sendList(QVector<int> list);// QRunnable interface
public:void run() override;
private:void quick_sort(QVector<int>& list, int l, int r);QVector<int> m_list;
};#endif // TQUICKSORT_H

tquicksort.cpp

#include "tquicksort.h"
#include <QElapsedTimer>
#include <QDebug>
#include <QThread>
TQuickSort::TQuickSort(QObject *parent): QObject{parent}, QRunnable()
{// 开启自动回收,由线程池回收对象资源setAutoDelete(true);
}void TQuickSort::setList(QVector<int> list)
{m_list = list;
}void TQuickSort::run()
{qDebug() << "快排线程地址:" << QThread::currentThread();QElapsedTimer time;time.start();this->quick_sort(m_list, 0, m_list.size());int milsec = time.elapsed();qDebug() << "快速排序总共用时:" << milsec << "毫秒";emit sendList(m_list);
}void TQuickSort::quick_sort(QVector<int>& list, int l, int r){//如果小于等于1个数据元素·直接返回结束快排函数 r为数组元素总个数if(l+1 >= r){return ;}int first = l, last = r-1, key = list[first];while(first < last){while(first < last && list[last] >= key){--last;}//如果值小于 key分界值 交换list[first] = list[last];while(first < last && list[first] < key){++first;}//如果值大于key分界值 交换list[last] = list[first];}list[first] = key;//递归左右部分进行快排quick_sort(list, l, first);quick_sort(list, first+1, r);
}

http://www.khdw.cn/news/39264.html

相关文章:

  • 合肥专业网站优化哪家好专注于seo顾问
  • 淄博网站建设优惠臻动传媒百度地图下载2022新版安装
  • 关于手机网站设计的若干想法seo搜索引擎优化师
  • 网站开发名片怎么做如何在网上推广产品
  • 中国建设银行jcb卡网站哪家竞价托管专业
  • 什么网站可以做动画信息流广告投放渠道
  • 广西网站建设原创aso优化方案
  • 小城市做网站广州seo网站推广公司
  • 购物商城外贸网站开网店3个月来亏了10万
  • 查询网138网站域名今日新闻头条
  • 本地南通网站建设单页网站怎么优化
  • 小学生做网站软件设计网站都有哪些
  • 二季域名做网站seo外包公司报价
  • zencart网站地图插件成品短视频app下载有哪些软件
  • 精美的php个人网站源码强化防疫指导
  • 网站数据抓取怎么做互联网运营自学课程
  • 做日租房 网站亿驱动力竞价托管
  • 东莞大朗今天最新疫情手机优化大师为什么扣钱
  • 长乐福州网站建设推广项目
  • 珠海多语种网站制作西安关键字优化哪家好
  • 网站制作图书域名注册网
  • 自己在线制作logo免费超清2022年百度seo
  • 如何形容一个网站做的好怎么进行网站推广
  • hbuilder 做网站电子网址怎么创建
  • 如何设计网站中的上传功能东莞网络推广公司
  • 外贸营销单页网站爱站关键词挖掘工具
  • 郑州网站建设包括哪些完美动力培训价格表
  • 做网络推广要做网站吗seo最新
  • 一个网站同时做百度和360 百度商桥都可以接收客户信息吗津seo快速排名
  • 旅游商城网站建设沈阳seo优化新势力