自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 二叉搜索树用于实际查询的性能比较(c语言)

这18种花中,第1种的访问频率是6,第2-3种的访问频率是5,第4-6种的访问频率是4,第7-10种的访问频率是3,第11-15种的访问频率是2,第16-18种的访问频率是1。1.二叉搜索树的查找时间为O(h),其中h为最大深度,但是二叉搜索树的深度与元素插入顺序有关,所以重复实验时运行时间会有较大的波动(如图二)选取前50小的值得到平均值0.0150897,而数组方法的平均值为0.01680286,可以看出随机二叉搜索树的查找时间受波动影响很大。但是可以看出,其在比较好的情况下,性能是优于数组方法的。

2024-04-14 13:26:03 1487 1

原创 归并排序原理及实现(C语言)

那么上面就是归并排序的代码,它的时间复杂度是O(nlogn),对于相同规模任意给出的数据都是如此。下面给出归并排序的代码。

2024-03-22 20:50:45 288

原创 关于Strassen算法递归出口的讨论(C语言)

所以,我通过实验得到了上面的数据。我们知道Strassen算法的时间复杂度是ϴ(n^lg7),所以数据规模充分大的时候,其肯定是优于普通矩阵乘法的,但是数据规模较小的情况下,由于Strassen算法要多次进行矩阵赋值,所以并不优于普通方法。这个方法确实管用,运行时间大大缩减。上面是关于Strassen算法的有关于递归出口的源码,这里的递归出口我采取了size

2024-03-12 21:46:40 1063

原创 C语言Strassen代码优化及性能比较

从这幅图来看,改进后的Strassen算法的特点十分明显,假设数据规模(m)有,2^n < m<=2^(n+1),则程序运行时间与数据规模为2^(n+1)相接近,这是因为采用了扩充矩阵的方法。然后看普通方法,其曲线基本符合n^3的样式。这里考虑到运行时间的关系,没有继续增加数据规模,但我们根据图像趋势,也可以知道,大规模数据下改进后的Strassen算法依然具有优势。我们可以看到,上面的代码只适用于2的幂阶的矩阵,那么我们该怎么改进Strassen算法,使它适应任意阶的矩阵呢?

2024-03-11 19:22:14 366

原创 C语言实现Strassen算法及分析

这时候共用了7次乘法,18次加减法运算. 写出递推公式T(n)=7T(n/2)+Θ(n^2). 最终结果是O(n^log7)=O(n^2.807)3.Strassen算法:其本质上也是使用了分治的思想,但是将时间复杂度优化到了O(n^log7),在大规模矩阵乘法上有极大优势。1.暴力计算法:利用三重循环进行计算,时间复杂度为O(n^3)。2.分治算法:其时间复杂度也是O(n^3),所以不在详细说。以上是Strassen算法的代码。结果矩阵C可以组合上述矩阵,如下。现在重新定义7个新矩阵。

2024-03-10 20:37:57 773

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除