大数据算法-空间时间亚线性算法举例(水库抽样,平面图直径)

本文主要是介绍大数据算法-空间时间亚线性算法举例(水库抽样,平面图直径),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大数据算法-空间时间亚线性算法举例

水库抽样

  • 问题描述
    Input:一组数据
    Output:这组数据的K个均匀抽样
  • 要求:
    • 扫描一次
    • 空间复杂度o(k)
    • 扫描到前n个数字时,保存当前数据的均匀抽样
  • 实现
    收到第i个元素t时,以k/i的概率随机替换抽样数组ans[]中的元素
  • 证明
    均匀:
    ki×(11i+1)×(11i+2)××(11n)=kn

代码如下:

#include <iostream>
#include <cstdlib>
#include <ctime>using namespace std;
int random(int min ,int max)
{return (min+(rand()%(max-min+1)));
}int main()
{srand(unsigned(time(0)));int k;int i;cout << "Input k:" ;cin >> k;double *ans = new double[k+1];double input;cout << "Input k numbers:" << endl;for(i = 1;i <= k; ++i){cin >> ans[i];}cout << "Input stream numbers:(q to quit)" << endl;while(true){int j = random(1,i);if(!(cin >> input)) break;if(j <= k)ans[j] = input;//outputcout << "Ans :" ;for(int p = 1;p < k; ++p)cout << ans[p] << ",";cout << ans[k] << endl;i++;}delete [] ans;return 0;
}

平面图直径

  • 问题描述

Input:m个点的平面图,任意两点的距离储存在矩阵D中。
* 输入大小n = m^2
* 最大的 Dij 为图的直径
* 点之间距离满足三角不等式
Output:该图的直径和距离最大的 Dij

  • 要求:
    • 运行时间o(n)
  • 实现
    1. 任意选择 km
    2. 选择使得 Dkl 最大的l
    3. 输出 Dkl 和(k,l)
  • 证明
    • 近似比
      DijDik+DkjDkl+Dkl2Dkl
    • 运行时间 O(m)=O(n)=o(n)

代码实现

#include <iostream>
#include <cstdlib>
#include <ctime>using namespace std;
int random(int min ,int max)
{return (min+(rand()%(max-min+1)));
}int main()
{srand(unsigned(time(0)));int m;cout << "Input m:";cin >> m;int **ans = new int * [m];for(int i = 0; i < m; ++i){ans[i] = new int[m];}cout << "Input martrix:" << endl;for(int i = 0; i < m; ++i){for(int j = 0;j < m; ++j){cin >> ans[i][j];}}int line = random(0,m-1);int maxd = 0,maxi;for(int i = 0;i < m; ++i){if(ans[line][i] > maxd){maxd = ans[line][i];maxi = i;}}cout << "MAX_D:" << maxd << ", D_(i,j):(" << line << "," << maxi+1 <<")" <<endl;for(int i = 0; i < m; ++i){delete [] ans[m];}delete [] ans;return 0;
}

(证明和例子参考王宏志MOOC,大数据算法)

这篇关于大数据算法-空间时间亚线性算法举例(水库抽样,平面图直径)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1044860

相关文章

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的