短网址或微小的网址是用来表示长URL的URL。 例如,http://tinyurl.com/y9nyxza
将重定向到http://www.iteye.com/topic/577820
使用短网址的主要优点:
1.便于记忆,而不是记50个或多个字符的URL
2.当你想通过短信发送一个50个字符的URL给朋友,你只留下您的信息90个字符。
实现自己的短网址需要如下步骤:
1.定义您自己的网址映射算法。
2.有一个数据库来存储映射的网址。
3.从数据库的短网址的映射找到原始的URL
我不知道别人是如何创建URL映射算法,但在这里,我将告诉你们,我的简单而快速的短网址实现:
该系统使用6个短码字符来表示任何长度的网址。 有效的字符代码是ASCII 'A'到'Z'和'0'的'5',其中每个字符包含2 ^ 5(32)状态。 6短码字符可用于绘制32 ^ 6(1073741824)的网址
首先,你需要一个数据库表来存储和检索你映射的网址。
CREATE TABLE mappedURL (的CREATE TABLE mappedURL(
shortCode char(6) not null,
lognURL text not null,
PRIMARY KEY shortCodeInd (shortCode),
);
其次,你需要定义一个算法将长的URL映射到短的URL。 以下是建议的算法:
loop1: while true loop1:
calculate md5 of the URL
loop2: from 1st 4 bytes to 4th 4 bytes of md5 result loop2:
cast the 4 bytes to an integer
loop3: for shortCodeChar[0] to shortCodeChar[5]
use 1st 5 bits of the integer to find the value in codeMap
remove 5 bits from the integer
end loop3
save shortCodeChar as shortCode
if shorCode does not exist in database
insert the short code and original URL into database
break loop1:
else
retrieve the stored URL from database
if original URL equals to URL stored in database
break loop1:
end if
end if
end loop2
insert '-'
end loop1
return shortCode
Note: codeMap contains value of valid characters from 'a' to 'z' (index 0 to 25) and '0'-'5' (index 26 to 31).
第三,你需要创建一个网页,从数据库的短网址的映射找到原始的URL,并重定向之。
分享到:
相关推荐
总结来说,这个压缩包提供了一套基于C语言实现的国密SM2算法的完整框架,包括算法实现、测试用例、库文件以及项目配置。开发者可以通过分析这些代码,理解SM2算法的实现细节,并在自己的项目中应用或扩展这一功能。...
在操作系统的设计与实现中,有三个重要的算法:银行家算法、进程调度算法和页面置换算法。这些算法对于系统的性能和稳定性至关重要。 首先,让我们深入探讨银行家算法。这个算法主要用于预防操作系统的死锁问题。...
《Fold算法实现最短路径详解》 在计算机科学领域,寻找图中节点之间的最短路径是一个常见的问题,尤其是在网络分析、路由规划、交通系统优化等领域。Floyd算法,也称为Floyd-Warshall算法,是一种解决此类问题的...
这种算法实现简单,但可能导致较长的平均等待时间,特别是当有长进程和短进程交替出现时。在C语言中,可以使用队列数据结构来模拟这种算法,将进程按到达时间排序并逐个执行。 **短进程优先(SJF)调度算法** SJF...
总结来说,DES加密算法是一种重要的对称加密技术,虽然因为其相对较短的密钥长度(56位)而逐渐被更安全的算法如AES所取代,但它在密码学教育和理解加密原理方面仍具有重要价值。C语言实现的DES算法源码可以帮助我们...
哈夫曼编码算法实现 哈夫曼编码是一种变长编码技术,用于压缩数据,提高信道的利用率,缩短信息传输的时间,降低传输成本。哈夫曼编码的原理是根据字符出现的频率,建立哈夫曼树,然后对各个字符进行哈夫曼编码。 ...
在实现短网址系统时,主要涉及数据结构和算法的应用。这里我们将探讨如何使用学过的数据结构和算法来创建一个短网址系统。 首先,我们需要一个ID生成器来为每个长网址分配唯一的标识。一种常见的方法是在第54节中...
MATLAB是实现这类算法的理想平台,因为它提供了丰富的数学工具和可视化功能。 在MATLAB实现的VIBE算法中,`vibe_tom.m` 文件可能是主程序或核心函数,用于执行VIBE的核心步骤。以下是对VIBE算法的详细解释: 1. **...
SJF 算法是一种基于短作业优先的调度算法,该算法认为,最短的作业应该首先被执行。该算法的主要思想是:每次选择当前可执行的最短作业,并为其分配 CPU 时间直到完成或被中断。 在上述代码中,SJF 算法的实现主要...
在IT行业中,短网址服务是一种常见的工具,它能够将长的URL缩短,便于分享和记忆。这个主题涉及的“短网址服务两种不同算法JAVA实现”是关于如何在Java编程环境中构建这种服务的关键技术。通常,短网址服务的核心...
多级反馈队列调度算法(Multilevel Feedback Queue Scheduling,MLFQ)是一种常见的操作系统进程调度策略,它结合了时间片轮转和优先级调度的优点,以优化系统的响应时间和周转时间。在深入探讨MLFQ的实现之前,我们...
通过这样的模拟,我们可以深入理解电梯算法的工作原理,并且可以优化算法,比如引入优先级队列来改进服务策略,或者使用其他调度算法进行对比,如短寻道时间优先(SSTF)或循环扫描算法(C-SCAN)。 在提供的压缩包...
DES(Data Encryption ...不过,需要注意的是,尽管DES算法在历史上有其重要地位,但由于其相对较短的密钥长度,现在已被视为不够安全,更现代的加密标准如AES(Advanced Encryption Standard)提供了更高的安全性。
但要注意,这个算法不适用于负权边,因为可能会漏掉更短的路径。 在压缩包中的"Dijkstra算法"可能包含了实现这个算法的C语言代码,包括邻接矩阵的定义、优先队列的实现、节点状态的跟踪以及路径打印等功能。通过...
通过阅读和理解代码,你可以更深入地学习Dijkstra算法的实现细节,包括如何组织数据结构,如何实现优先队列,以及如何将算法整合进一个用户友好的程序中。同时,也可以尝试修改和优化代码,以适应不同的需求和场景。
操作系统实验报告 C++实现进程调度算法,短进程优先SJF与先来先服务FCFS算法 本实验报告的主要目的是通过C++语言实现短进程优先SJF和先来先服务FCFS两种进程调度算法,并比较它们的性能。 第一部分:实验目的 本...
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业...基于C++实现SJF短优先算法+HRRN高响应比优先调度算法+多级反馈队列调度算法源码.zip
进程调度算法的模拟实现 进程调度是操作系统中的一种机制,旨在将系统资源分配给不同的进程以提高系统的效率和性能。进程调度算法是操作系统中的一种核心算法,它决定了进程的执行顺序和时间。在本文中,我们将对五...
本文将深入探讨Java环境下实现的四种进程调度算法:先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)以及高响应比优先(HRN)。这些算法在多任务环境中用于决定哪个进程应该获得CPU的执行权,以达到资源分配的公平...
哈夫曼编码算法与分析(java实现) 哈夫曼编码是一种广泛用于数据文件压缩的十分有效的编码方法,它通过对文件中各个字符出现的频率进行分析,生成各个字符的哈夫曼编码方案。哈夫曼编码的主要思想是通过构造一棵...