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

网站开发合同缴纳印花税吗李勇seo的博客

网站开发合同缴纳印花税吗,李勇seo的博客,做外贸如何浏览国外网站,广州网站开发建设文章目录 前言1. 排序算法的复杂度及稳定性分析2. 排序算法的性能测试2.1 重复率较低的随机值排序测试2.2 重复率较高的随机值排序测试 前言 本篇是基于我这几篇博客做的一个总结: 《简单排序》(含:冒泡排序,直接插入排序&#x…

文章目录

  • 前言
  • 1. 排序算法的复杂度及稳定性分析
  • 2. 排序算法的性能测试
    • 2.1 重复率较低的随机值排序测试
    • 2.2 重复率较高的随机值排序测试




前言


本篇是基于我这几篇博客做的一个总结:

  1. 《简单排序》(含:冒泡排序,直接插入排序,选择排序,计数排序)
  2. 《希尔排序》
  3. 《堆排序》
  4. 《快速排序》
  5. 《归并排序》

我会再对他们的时间复杂度、空间复杂度以及稳定性再做一次总结,并且在不同的场景下,测试他们的性能怎么样。


1. 排序算法的复杂度及稳定性分析


在这里插入图片描述

排序方法平均情况最好情况最坏情况辅助空间稳定性
冒泡排序 O O O( N N N2) O O O( N N N) O O O( N N N2) O O O( 1 1 1)稳定
选择排序 O O O( N N N2) O O O( N N N2) O O O( N N N2) O O O( 1 1 1)不稳定
直接插入排序 O O O( N N N2) O O O( N N N) O O O( N N N2) O O O( 1 1 1)稳定
计数排序 O O O( N + r a n g e N+range N+range) O O O( N N N) O O O( N + r a n g e N+range N+range) O O O( r a n g e range range)
希尔排序 O O O( N ∗ l o g N N*logN NlogN) ~ O O O( N N N2) O O O( N N N1.3) O O O( N N N2) O O O( 1 1 1)不稳定
堆排序 O O O( N ∗ l o g N N*logN NlogN) O O O( N ∗ l o g N N*logN NlogN) O O O( N ∗ l o g N N*logN NlogN) O O O( 1 1 1)不稳定
归并排序 O O O( N ∗ l o g N N*logN NlogN) O O O( N ∗ l o g N N*logN NlogN) O O O( N ∗ l o g N N*logN NlogN) O O O( N N N)稳定
快速排序 O O O( N ∗ l o g N N*logN NlogN) O O O( N ∗ l o g N N*logN NlogN) O O O( N N N2) O O O( l o g N logN logN) ~ O O O( N N N)不稳定


2. 排序算法的性能测试


⚠️:我这里只是测试一遍的结果截图,目的是让大家看看,判断一个排序的优劣需要不同场景下的大量测试。

我们比较排序时,应该换成release版本来测试,这样性能才会全部拉满

先写一段测试代码

// 测试排序的性能对比
// 测试排序的性能对比
void TestOP()
{srand(time(0));const int N = 100000;     // 十万个数的比较int* a1 = (int*)malloc(sizeof(int) * N);int* a2 = (int*)malloc(sizeof(int) * N);int* a3 = (int*)malloc(sizeof(int) * N);int* a4 = (int*)malloc(sizeof(int) * N);int* a5 = (int*)malloc(sizeof(int) * N);int* a6 = (int*)malloc(sizeof(int) * N);int* a7 = (int*)malloc(sizeof(int) * N);int* a8 = (int*)malloc(sizeof(int) * N);for (int i = 0; i < N; ++i){a1[i] = rand() + i; // 生成十万个重复率低的随机值//a1[i] = rand() % 100; // 生成十万个重复率高的随机值a2[i] = a1[i];a3[i] = a1[i];a4[i] = a1[i];a5[i] = a1[i];a6[i] = a1[i];a7[i] = a1[i];a8[i] = a1[i];}int begin1 = clock();InsertSort(a1, N);int end1 = clock();int begin2 = clock();SelectSort(a2, N);int end2 = clock();int begin3 = clock();ShellSort(a3, N);int end3 = clock();int begin4 = clock();HeapSort(a4, N);int end4 = clock();int begin5 = clock();QuickSort(a5, 0, N);int end5 = clock();int begin6 = clock();MergeSort(a6, N);int end6 = clock();int begin7 = clock();QuickSortNonR(a7, 0, N);int end7 = clock();int begin8 = clock();MergeSortNonR(a8, N);int end8 = clock();printf("InsertSort:%d\n", end1 - begin1);printf("SelectSort:%d\n", end2 - begin2);printf("ShellSort:%d\n", end3 - begin3);printf("HeapSort:%d\n", end4 - begin4);printf("QuickSort:%d\n", end5 - begin5);printf("MergeSort:%d\n", end6 - begin6);printf("QuickSortNonR:%d\n", end7 - begin7);printf("MergeSortNonR:%d\n", end8 - begin8);free(a1);free(a2);free(a3);free(a4);free(a5);free(a6);
}int main()
{srand((unsigned)time(NULL)); // 生成随机数种子TestOP();return 0;
}

2.1 重复率较低的随机值排序测试

在这里插入图片描述
可以看到,直接插入排序在比较低阶的排序算法中,算是很优秀的一个排序了。

我们继续加大数据,但是我得把效率比较低的排序关掉,单独来比那些比较高阶的排序:
在这里插入图片描述

2.2 重复率较高的随机值排序测试

直接看结果:
在这里插入图片描述

继续加大数据,把效率比较低的排序关掉,单独来比那些比较高阶的排序:
在这里插入图片描述

http://www.shuangfujiaoyu.com/news/50867.html

相关文章:

  • 歌曲伴奏在线制作网站如何推广一个网站
  • 企业网站建设建议百度贴吧怎么做推广
  • 时时彩票网站开发谷歌外贸网站推广
  • 做网站的销售怎么样关键词优化
  • 成都房地产公司排名百度seo优化
  • 上海公司网站建设手机网站怎么优化关键词
  • 网站用户黏度seo关键词排行优化教程
  • 上海建设厅网站首页爱站长
  • 鲜花网站建设网站如何优化
  • 51网站怎么打不开了游戏推广员拉人犯法吗
  • 灯饰网站需要这么做北京优化推广公司
  • 建设环境工程技术中心网站cba最新积分榜
  • 粘合剂东莞网站建设十大洗脑广告
  • 手机网站建设 上海链接购买平台
  • 沧州做网站多少钱seo优化关键词排名
  • 做图书出版 外国网站谷歌浏览器下载app
  • 网站公司做网站搜索引擎优化包括
  • b站官网强力搜索引擎
  • 做饮食网站怎么样手机百度极速版
  • 交流平台网站怎么做不了教育培训网
  • 网站做得好的公司佛山网站搜索排名
  • 网站超市源码阿里巴巴logo
  • 大学科技园东区 做网站晋中网站seo
  • 网站建设模板哪里下载百度推广代理商利润
  • 哪些网站可以做批发怎么做宣传推广
  • 外贸常用网站广州网站推广
  • 一流的镇江网站建设seo 优化思路
  • 免费影视剧网站电商网站策划
  • 网站建设售后服务承诺深圳seo教程
  • 做网站推广的流程百度云搜索引擎入口官网