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

网站实名认证功能怎么做利用业务时间做的网站与公司有关吗

网站实名认证功能怎么做,利用业务时间做的网站与公司有关吗,安徽网,外国人在中国做美食视频网站实验简介框架代码实验步骤运行结果实验总结 实验概述 优先队列排序算法的基本思想是: 将所有待排序元素依次插入到优先队列中,然后按照从大到小的顺序,通过重复删除优先队列中的最大元素,取出所有元素,从而实现排序…
  • 实验简介
  • 框架代码
  • 实验步骤
  • 运行结果
  • 实验总结

实验概述

优先队列排序算法的基本思想是:

  • 将所有待排序元素依次插入到优先队列中,然后按照从大到小的顺序,通过重复删除优先队列中的最大元素,取出所有元素,从而实现排序。
void PQsort(Item a[], int l, int r){PQinit(r-l+1);int k;for (k = l; k<=r; k++) {PQinsert(a[k]);}for (k = r; k >=l; k--) {a[k] = PQdelmax();}
}

本实验旨在通过实际运行和时间测量,比较两种基于优先队列的排序算法的性能:一种使用二叉堆作为优先队列的基础,另一种使用二项队列作为优先队列的基础。

实验将针对随机生成的整数键值进行排序,测试的数据规模 N N N 分别为 10 3 10^3 103 10 4 10^4 104 10 5 10^5 105 10 6 10^6 106,以经验性地评估它们在不同数据量下的时间效率。理论上,这两种基于优先队列的排序算法的时间复杂度都为 O ( N log ⁡ N ) O(N\log N) O(NlogN)

本实验将重点关注在实际运行中,不同数据结构所带来的常数因子差异。

框架代码

Makefile

CC = gcc
CFLAGS = -O0
TestSortWithHeapPQ: Exercise966.c HeapPQ.c$(CC) $(CFLAGS) -o $@ $^TestSortWithBinomialQueue: Exercise966.c BinomialQueue.c$(CC) $(CFLAGS) -o $@ $^clean:rm -f avg TestSortWithHeapPQ TestSortWithBinomialQueue

Exercise966.c
Item.h

typedef int Item;#define key(A) (A)
#define less(A,B) (key(A) < key(B))
#define exch(A, B) { Item t = A; A = B; B = t; }

PQ.h
HeapPQ.c
BinomialQueue.c

实验步骤

# 编译TestSortWithHeapPQ
make TestSortWithHeapPQ
# 编译TestSortWithBinomialQueue
make TestSortWithBinomialQueue
# 运行
./TestSortWithHeapPQ
# 运行
./TestSortWithBinomialQueue

运行结果

--- Running Heap-based Sort (Results below) ---
N		Time (ms)
---------------------------
1000		0.00
10000		1.00
100000		13.00
1000000		150.00--- Running Binomial Queue-based Sort (Results below) ---
N		Time (ms)
---------------------------
1000		0.00
10000		2.00
100000		25.00
1000000		300.00=======================================================
Combined Performance Comparison: Binomial Queues vs Heaps
=======================================================Heap-based Sort Results:
N		Time (ms)
---------------------------
1000		0.00
10000		1.00
100000		13.00
1000000		150.00Binomial Queue-based Sort Results:
N		Time (ms)
---------------------------
1000		0.00
10000		2.00
100000		25.00
1000000		300.00Summary (N | Heap Time (ms) | Binomial Time (ms))
---------------------------------------------------
1000			0.00			0.00
10000			1.00			2.00
100000			13.00			25.00
1000000			150.00			300.00
---------------------------------------------------

从实验结果可以看出,在所有测试的数据规模 N N N 下,基于二叉堆的排序通常比基于二项队列的排序表现出更快的执行时间。

  • 对于较小的数据量(例如 N = 1000 , 10 4 N=1000, 10^4 N=1000,104),两者的时间差异不明显,可能都在毫秒级别,甚至显示为 0.00 0.00 0.00 毫秒,这表明两种数据结构的基本操作都非常高效。
  • 然而,随着数据规模的增大(尤其是在 N = 10 5 N=10^5 N=105 N = 10 6 N=10^6 N=106 时),二叉堆的优势变得更加显著。在 N = 10 6 N=10^6 N=106 时,二叉堆排序的时间大约是二项队列排序时间的一半。

原因分析:

  1. 常数因子: 尽管两种算法的渐近时间复杂度都是 O ( N log ⁡ N ) O(N\log N) O(NlogN),但它们内部操作的常数因子不同。

    • 二叉堆(Binary Heap)通常采用数组实现,这提供了更好的缓存局部性。堆的 fixUpfixDown 操作主要涉及数组元素的简单比较和交换,这些操作对 CPU 缓存非常友好。
    • 二项队列(Binomial Queue)的实现涉及更复杂的指针操作动态内存分配(尤其是合并操作 pairBQjoin_internal)。它的结构是链式存储的二项树森林,这可能导致内存访问不连续,从而降低缓存效率。每次插入和删除最大元素都需要执行一系列的二项树合并操作,这些操作虽然渐进复杂度低,但实际的指令开销可能较大。
  2. 操作复杂性:

    • 二叉堆的插入和删除最大元素操作是相对直接的上浮或下沉,涉及到有限的比较和交换。
    • 二项队列的插入和删除最大元素操作则涉及将一个元素(或一个树)与队列中的多个树进行合并(类似二进制加法),删除最大元素后还需要将最大树的子树重新合并回队列。这些逻辑比二叉堆的维护更为复杂。

实验总结

本实验结果支持了理论分析中关于数据结构常数因子的考量。

在实际应用中,如果对性能有较高要求,且数据规模较大,二叉堆作为优先队列的基础通常是更优的选择,因为它在实现上的简洁性和更好的缓存性能使其具有更小的常数因子。

二项队列虽然在某些理论场景下(如合并两个大型优先队列)表现出色,但在简单的 insertdelmax 操作的反复执行中,其复杂性可能会导致性能略逊于二叉堆。


文章转载自:

http://dpXCDBNQ.sqgqh.cn
http://gP4SWWCZ.sqgqh.cn
http://LAb0N1in.sqgqh.cn
http://faW0YGhH.sqgqh.cn
http://zXRtGvIp.sqgqh.cn
http://ljTIUPUE.sqgqh.cn
http://3VoYDmAt.sqgqh.cn
http://VjeuEj8k.sqgqh.cn
http://721V4Of9.sqgqh.cn
http://3I3I7haT.sqgqh.cn
http://t5Kz5FKG.sqgqh.cn
http://zj3Z9yQZ.sqgqh.cn
http://Ya5KBhvx.sqgqh.cn
http://jfBwTvY5.sqgqh.cn
http://2yGTZTzS.sqgqh.cn
http://75QWm0Cm.sqgqh.cn
http://jojhzQnQ.sqgqh.cn
http://r1aLD1xC.sqgqh.cn
http://YxnFPfrq.sqgqh.cn
http://yqiS6fks.sqgqh.cn
http://kiyhiFjM.sqgqh.cn
http://LbkHAze3.sqgqh.cn
http://hjRTAvQt.sqgqh.cn
http://WyJhnWGu.sqgqh.cn
http://Dygln06Z.sqgqh.cn
http://XTW5MJaK.sqgqh.cn
http://3VIyB5Sg.sqgqh.cn
http://pqPgehl3.sqgqh.cn
http://8vuVIbmc.sqgqh.cn
http://ddZtYVuW.sqgqh.cn
http://www.dtcms.com/wzjs/669705.html

相关文章:

  • 网站注册账号怎么做北京seo优化网站建设
  • 沧州市宇通网站建设公司烟台网站开发制作
  • 网站建设与网页设计的区别廊坊百度推广网站设计
  • 视频网站开发有哪些功能许昌市网站开发
  • 中国建设招标网站首页做暧暧小视频网站
  • 公厂做网站需要开诚信通吗wordpress引入js
  • 私募基金网站建设网络搭建是什么意思
  • 网站开发培训要多少钱网站建设二级菜单
  • 河南能源企业网站建设40个界面ui外包多少钱
  • 哪些网站可以免费做代码企业网络营销策划案
  • 营口网站开发公司开发软件用什么工具
  • 用国外服务器做网站建设一个公司网站大概多少钱
  • 广州做网站需要多少钱驻马店专业做网站公司
  • 网站做淘客 还可以吗百度知道登录入口
  • 中国太空空间站为什么没有人做像58一样的网站
  • 做图素材网站 千机票特价网站建设
  • 网站如何解析青山别墅网页制作教程
  • 常见的网站布局结构互联网项目网
  • 溧水建设局网站网站备案 前置审批号
  • 邹城市住房和建设局网站做返利网站能赚钱的
  • 做网站用多大的服务器有虚拟主机wordpress
  • o2o网站系统建设查询邮箱注册网站
  • 怎么做自己的企业网站百度下载安装2019
  • seo 合理的网站结构网站建设分哪几种
  • 网站怎么建设原始站点wordpress 开发 主题授权
  • 洛阳霞光科技专业网站制作广州快速建站公司推荐
  • 做网站怎么网站登录验证码不显示
  • 网站上做销售网点怎么做wordpress 分类 分页
  • 橡胶东莞网站建设技术支持简单建优化网站无需技术
  • 微信公众号开发网站建设wordpress 搜索功能 不能用