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

vector+算法sort与list+sort的效率比较,容易写错的地方原因探析

我写的代码:

#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <algorithm>
int main()
{const int N = 10000000;vector<int> v;list<int> l;for (int i = 0; i < N; i++){v.push_back(i);l.push_back(i);}int begin1 = clock();sort(v.begin(), v.end());int end1 = clock();int begin2 = clock();l.sort();int end2 = clock();cout << "vector+算法:" << end1 - begin1 << endl;cout << "list+sort:" << end2 - begin2 << endl;
}

运行结果:无论N为多大,上面永远大于下面

老师的代码:

#include <time.h>
#include <iostream>
using namespace std;
#include <list>
#include <vector>
#include <algorithm>int main()
{srand(time(0));const int N = 10000000;vector<int> v;v.reserve(N);list<int> lt2;for (int i = 0; i < N; i++){auto e = rand();v.push_back(e);lt2.push_back(e);}int begin1 = clock();sort(v.begin(), v.end());int end1 = clock();int begin2 = clock();lt2.sort();int end2 = clock();cout << "vector sort:" << end1 - begin1 << endl;cout << "list sort:" << end2 - begin2 << endl;
}

运行结果:N较小时,差不多大,N较大时,上面比小面小得多

原因:

快排在最坏情况下的时间复杂度为(n^2),最坏情况对应的是数据有序,我写的代码就是有序数,所有跑出来的结果和老师的无序数相反,快排的平均时间复杂度是(nlgn),快排只有在无序数中排序才有意义

http://www.lryc.cn/news/198695.html

相关文章:

  • iOS——Manager封装网络请求
  • 【javascript】内部引入与外部引入javascript
  • 掌握JavaScript的练习之道:十个手写函数让你信手拈来!
  • 买卖股票的最佳时机 II[中等]
  • 前端开发调试技巧:如何在Component下选中当前插件并且查看当前插件信息
  • 你是否还迷茫要不要学习Linux?
  • leetcode(1)链表
  • spring boot Rabbit高级教程
  • FTP的魅力:构建高效的文件传输基础
  • 70、window11+visual studio2019+共享内存进行数据传输
  • SSTI模板注入(flask) 学习总结
  • 最近的工作和生活
  • 第六节:Word中对象的层次结构
  • ARJ_DenseNet BMR模型训练
  • React之Hook
  • OSG嵌入QT的简明总结2
  • 日常中msvcp71.dll丢失怎样修复?分享5个修复方法
  • 【腾讯云TDSQL-C Serverless 产品体验】使用 Python向TDSQL-C添加读取数据实现词云图
  • 服务器感染了.360、.halo勒索病毒,如何确保数据文件完整恢复?
  • BAT028:批量将文件修改日期后缀更新为最新修改日期
  • Visual Studio C++ 的 头文件和源文件
  • Scrapy框架中的Middleware扩展与Scrapy-Redis分布式爬虫
  • [论文笔记]Sentence-BERT[v2]
  • 虚拟机ubantu系统突然重启失去网络
  • 三款经典的轮式/轮足机器人讲解,以及学习EG2133产生A/B/C驱动电机。个人机器人学习和开发路线(推荐)
  • apache开启https
  • 绝地求生游戏缺少msvcp140.dll丢失打不开怎么办?这6个方法都能修复
  • 【广州华锐互动】石油钻井井控VR互动实训系统
  • 单链表算法经典OJ题
  • Picnic master project interview