大量url,如何去重

简介:
问题: 
大量的字符串格式的URL,如何从中去除重复的,优化时间空间复杂度 
1. 内存够用,将URL存入hash链表,每个URL读入到hash链表中
,遇到重复的就舍弃,否则加入到链表里面,最后遍历得到所有不重复的URL。空间复杂度M,时间复杂度为O(N+N/M),M为不重复的URL,N为总URL数,但是M无法预测,所以存在风险,可能内存不足以存储所有的不重复URL。 

2. 为了解决内存可能不足的问题,需要把hash链表变化成普通的hash表,每个hash表元素指向一个文件文件,这个文件记录了所有该hash值对应的无重复的URL,那么在加入URL的时候就遍历对应文件中的URL,没有重复则加入到文件中。这样做时间复杂度没有提升,但是每次都要读写文件,消耗的时间应该是上一种方式的三倍(依赖于io速度),而对内存的要求比较小。一个改进是加入URL的时候进行排序,这样能减少比对的次数。 

本文转自博客园知识天地的博客,原文链接:大量url,如何去重,如需转载请自行联系原博主。

相关文章
|
NoSQL 算法 Redis
URL 去重的 6 种方案!(附详细代码)下
URL 去重的 6 种方案!(附详细代码)下
250 0
URL 去重的 6 种方案!(附详细代码)下
|
SQL 存储 数据库
URL 去重的 6 种方案!(附详细代码)中
URL 去重的 6 种方案!(附详细代码)中
188 0
URL 去重的 6 种方案!(附详细代码)中
|
存储 SQL NoSQL
URL 去重的 6 种方案!(附详细代码)上
URL 去重的 6 种方案!(附详细代码)上
306 0
URL 去重的 6 种方案!(附详细代码)上
|
存储 SQL NoSQL
URL 去重的 6 种方案!(附详细代码)
URL 去重的 6 种方案!(附详细代码)
397 0
URL 去重的 6 种方案!(附详细代码)
|
8月前
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
84 0
|
4月前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
67 0
|
5月前
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
|
5月前
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
57 0
|
6月前
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
349 0
|
6月前
|
JavaScript
js 获取并解析 url 中参数的三种方法
js 获取并解析 url 中参数的三种方法
691 0