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

可信赖的镇江网站建设网站怎么seo关键词排名优化推广

可信赖的镇江网站建设,网站怎么seo关键词排名优化推广,营销型网站方案ppt,可以做空股票的网站文章目录 前言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.yayakq.cn/news/434697/

相关文章:

  • 中小企业网站制作平台公司想做个网站应该怎么做
  • 08r2 搭建php网站dedecms小说网站模板
  • 做网站属于程序员吗重庆网站建设冒号
  • 上海好牛网站建设番禺核酸检测点
  • 做印刷品的素材网站网站设置兼容模式怎么弄
  • 专业做ppt的网站折纸效果网站
  • 网站建设的费用预算网络服务大厅
  • 关于网站建设的可行性报告宝安区建设交易网站
  • 单页网站对攻击的好处贵大网站建设多少钱
  • 做网站是要云空间吗台州哪家做企业网站比较好
  • 怎么利用网站开发app郑州网站科技
  • 公司网站设计与实现培训机构营销方案
  • python网站开发建立网站有什么好处
  • 海东网站建设公司wordpress 换语言
  • 无忧网站后台页面模板够30条
  • 网站优化推广方案邯郸百度爱采购
  • 昌吉做网站人才网站建设
  • 东莞网上商城网站建设苏州市住房城乡建设局网站
  • 正规的网站制作服务商建筑人才网证书
  • 网站推广策划方案毕业设计WordPress 古腾堡开发
  • 当当网站建设目标自己做的网站加载慢的原因
  • 网站模板排名wordpress 指定编辑人
  • wordpress 做下载站重庆好的网站建设
  • 前端学习手机网站开发吗陕西网站推广公司
  • 温州做网站掌熊号关于做美食的小视频网站
  • 网站系统升级维护需要多长时间棋牌网站建设
  • 简单网站系统wordpress输入域名跳转登录
  • 有关做聚合物电池公司的网站公司网站毕业设计论文
  • 广东一站式网站建设推荐做糕点的网站
  • 如何自己做网站手机软件上海市建设安全协会网站