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

制作网站公司网址/游戏推广员上班靠谱吗

制作网站公司网址,游戏推广员上班靠谱吗,网站优化 ppt,做网站资金来源是什么描述&#xff1a;创建三个线程&#xff0c;一个产生随机数&#xff0c;一个调用冒泡算法对随机数进行排序&#xff0c;一个调用快速排序算法排序并输出结果及打印三个线程处理任务的各自耗时时间。 main.cpp: #include "widget.h"#include <QApplication>int …

描述:创建三个线程,一个产生随机数,一个调用冒泡算法对随机数进行排序,一个调用快速排序算法排序并输出结果及打印三个线程处理任务的各自耗时时间。

main.cpp:

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);qRegisterMetaType<QVector<int>>("QVector<int>");//不支持'QVector<int>'类型需要注册Widget w;w.show();return a.exec();
}

Widget(h/cpp):

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void starting(int num);private:Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include "mythread.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建子线程对象GetRandNum *getRand = new GetRandNum;BubbelSort *bubble = new BubbelSort;QuickSort  *quick = new QuickSort;connect(this,&Widget::starting,getRand,&GetRandNum::reciveNum);//启动子线程connect(ui->start,&QPushButton::clicked,this,[=](){emit starting(10000);getRand->start();});connect(getRand,&GetRandNum::sendArray,bubble,&BubbelSort::recvArray);connect(getRand,&GetRandNum::sendArray,quick,&QuickSort::recvArray);connect(getRand, &GetRandNum::sendArray, this, [=](QVector<int> nums){bubble->start();quick->start();for(int i=0; i<nums.size(); ++i){ui->randList->addItem(QString::number((nums.at(i))));}});connect(bubble, &BubbelSort::finish, this, [=](QVector<int> nums){for(int i=0; i<nums.size(); ++i){ui->bubbelList->addItem(QString::number((nums.at(i))));}});connect(quick, &QuickSort::finish, this, [=](QVector<int> nums){for(int i=0; i<nums.size(); ++i){ui->quickList->addItem(QString::number((nums.at(i))));}});//最后记得销毁线程connect(this, &Widget::destroyed, this, [=](){getRand->quit();getRand->wait();getRand->deleteLater();  // delete t1;bubble->quit();bubble->wait();bubble->deleteLater();quick->quit();quick->wait();quick->deleteLater();});}Widget::~Widget()
{delete ui;
}

myThread(h/cpp):

#ifndef MYTHREAD_H
#define MYTHREAD_H#include <QThread>//1生成随机数的线程
class GetRandNum : public QThread
{Q_OBJECT
public:explicit GetRandNum(QObject *parent = nullptr);void reciveNum(int num);signals:protected:void run() override;signals:void sendArray(QVector<int> nums);private:int m_num;};
//2生成处理冒泡排序的线程
class BubbelSort : public QThread
{Q_OBJECT
public:explicit BubbelSort(QObject *parent = nullptr);void recvArray(QVector<int> array);void bubbleSort(QVector<int> &nums);signals:void finish(QVector<int> nums);protected:void run() override;private:QVector<int> m_array;};
//2生成处理快速排序的线程
class QuickSort : public QThread
{Q_OBJECT
public:explicit QuickSort(QObject *parent = nullptr);void recvArray(QVector<int> array);void quickSort(QVector<int> &nums,int l,int r);signals:void finish(QVector<int> nums);protected:void run() override;private:QVector<int> m_array;};
#endif // MYTHREAD_H
#include "mythread.h"
#include <QDebug>
#include <QElapsedTimer>
#include <QVector>GetRandNum::GetRandNum(QObject *parent): QThread{parent}
{}//给全局变量赋值
void GetRandNum::reciveNum(int num)
{m_num = num;
}void GetRandNum::run()
{qDebug() << "生成随机数的线程的线程地址: " << QThread::currentThread();QVector<int> nums;QElapsedTimer time;time.start();for(int i = 0;i<m_num;++i){nums.push_back(qrand()%100000);}int useTime = time.elapsed();qDebug() << "生成" << m_num << "个随机数总共用时:" << useTime << "毫秒";emit sendArray(nums);
}BubbelSort::BubbelSort(QObject *parent): QThread{parent}
{}
void BubbelSort::recvArray(QVector<int> array)
{m_array = array;
}void BubbelSort::bubbleSort(QVector<int> &nums)
{int n = nums.size();bool isChange = false;for(int i = 1;i<n;i++){for(int j = 0;j<n-i-1;j++){if(nums[j]>nums[j+1]){int t = nums[j];nums[j] = nums[j+1];nums[j+1] = t;isChange = true;}}if(!isChange){//冒泡排序优化了也比不上快排break;}}}void BubbelSort::run()
{qDebug() << "生成处理冒泡排序的线程地址: " << QThread::currentThread();QElapsedTimer time;time.start();bubbleSort(m_array);int useTime = time.elapsed();qDebug() << "冒泡总共用时:" << useTime << "毫秒";emit finish(m_array);
}QuickSort::QuickSort(QObject *parent): QThread{parent}
{}
void QuickSort::recvArray(QVector<int> array)
{m_array = array;
}void QuickSort::quickSort(QVector<int> &nums,int l,int r)
{if (l < r){int i = l, j = r;// 拿出第一个元素, 保存到x中,第一个位置成为一个坑int x = nums[l];while (i < j){// 从右向左找小于x的数while (i < j && nums[j] >= x){//左移, 直到遇到小于等于x的数j--;}if (i < j){//将右侧找到的小于x的元素放入左侧坑中, 右侧出现一个坑//左侧元素索引后移nums[i++] = nums[j];}// 从左向右找大于等于x的数while (i < j && nums[i] < x){//右移, 直到遇到大于x的数i++;}if (i < j){//将左侧找到的元素放入右侧坑中, 左侧出现一个坑//右侧元素索引向前移动nums[j--] = nums[i];}}//此时 i=j,将保存在x中的数填入坑中nums[i] = x;quickSort(nums, l, i - 1); // 递归调用quickSort(nums, i + 1, r);}}void QuickSort::run()
{qDebug() << "生成处理快速排序的线程地址: " << QThread::currentThread();QElapsedTimer time;time.start();quickSort(m_array,0,m_array.size()-1);int useTime = time.elapsed();qDebug() << "快速排序总共用时:" << useTime << "毫秒";emit finish(m_array);
}

run:

http://www.jmfq.cn/news/4905505.html

相关文章:

  • 国外 网站页面/百度收录提交网站后多久收录
  • 二七区做网站/厨师培训学校
  • 重庆沙坪坝房价/西安seo外包行者seo
  • 分析网站建设前期的seo准备工作/网上推广app怎么做
  • 光谷做网站推广公司/seo上首页排名
  • wordpress全站/seo资料网
  • 网站new图标/一般网络推广应该怎么做
  • 专业柳州网站建设/新闻实时报道
  • 如何用wordpress插件/怎么seo快速排名
  • 哪家网站做的好/有必要买优化大师会员吗
  • 看男女做那个真实视频网站/互联网推广怎么找渠道
  • 河南郑州百度网站建设/18款禁用看奶app入口
  • 个人印章在线制作网站/营销方案怎么写模板
  • 专业做网站的公司哪家好/石家庄最新消息
  • 桂林疫情原因/常州谷歌优化
  • 商城网站建设所必备的四大功能是哪些/哪有网页设计公司
  • 优购物官方网站下载/网站流量分析报告
  • 做网站用的/网络推广和网站推广
  • 做网站怎么报价/百度最怕哪个部门去投诉
  • 网站开发与维护算什么职位/竞价托管是啥意思
  • 域名iis网站添加/百度站长平台提交网站
  • 给企业做宣传网站的好处/衡阳网站优化公司
  • 网站建设公司模版/优化网站软文
  • 网站开发培训哪个好/二十个优化
  • 宁波网站的优化/做百度网站一年多少钱
  • 中国电子工程师网/网站优化seo是什么
  • 优秀网站特点/seo资讯
  • 重庆网站设计制作网站/参考网是合法网站吗?
  • wordpress导航栏上方/太原搜索引擎优化招聘信息
  • 环保网站模板 html/网络推广的基本方法有哪些