Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。

Debian的U盘安装及SecureCRT登录

Debian是开源操作系统Linux的一个发行版,而且历史最悠久的的非商业社区发行版,是最具有影响力的Linux发行版,目前仍然活跃的发行版中很大一部分是基于Debian的。而SecureCRT是一款支持SSH的终端仿真程序,是非常流行的在Windows下登录UNIX或Linux服务器主机的软件。
本文主要通过实际操作讲解如何使用U盘启动来安装Debian操作系统,并介绍之后如何使用SecureCRT进行登录。这里的操作并不是对Debian才有效,对其他的发行版也可以类似进行。

继续阅读»

短链接算法实现

短链接由于微博的流行变得应用非常广泛,短连接简单来说就是把一个很长的URL地址转化为相对简短的地址而且仍然可以正常使用,如把地址http://noalgo.info/转化为http://t.cn/R74gDvp,当然我这里本来就比较短,不过对于再长的地址也是转化成为相同长度的短链接。
本文将介绍短链接的简介及生成的算法原理,最后提供一个C++版本的短链接生成代码。

继续阅读»

二叉查找树

二叉查找树(binary search tree,又叫二叉搜索树或者二叉排序树)是一种非常重要的数据结构,许多高级树结构都是二叉查找树的变种,例如AVL树、红黑树等,理解二叉查找树对于后续树结构的学习有很好的作用。同时利用二叉查找树可以进行排序,称为二叉排序,也是很重要的一种思想。
本文主要参考算法导论,详细介绍二叉查找树的原理及具体的C++代码实现。

继续阅读»

MD5算法原理及实现

MD5(Message Digest Algorithm 5,消息摘要算法第五版)是计算机安全领域广泛使用的一种散列函数,经MD2、MD3和MD4发展而来,可以用于保护信息传输的完整一致性。本文将介绍MD5算法的原理及C++实现,并简单介绍其应用场景。
注意,虽然MD5算法是不可逆的,但是目前其已经被破解了,不再是认为安全的,因为通过多次尝试并进行对比,可能可以得到一个MD5刚好是给定MD5值的串,通过特殊的方法可以加速这种尝试,从而在较快的时间内对其进行破解。

继续阅读»

C/C++变长参数的原理与实现

C/C++语言可以支持参数个数可变及参数类型不定的函数,虽然实际编程中用到的可能不多,但深入研究下其细节还是有点意思的。
本文将主要介绍C/C++变长参数的原理与实现。

继续阅读»

内联汇编

内联汇编是指在C/C++代码中嵌入的汇编代码,在Visual Studio中使用内联汇编可以使用在C/C++中的变量,不需要额外的编译器和链接器,效率很好,而且可以解决一些普通代码不能解决的问题,在特定的场合中使用起来非常方便。
本文将通过几个例子简单介绍Visual C++中使用内联汇编的相关知识。

继续阅读»

Windows计时函数

评估程序的运行效率是程序设计过程中经常遇到的需求,一般可以在程序代码段的首尾分别记录当时的时间,然后相减得到程序运行的实际时间,时间越长说明效率越低,需要想办法优化。
Windows平台下提供了许多API函数来完成这个功能,本文将简单介绍常用的几种方法,不同方法有不同的精度和运行环境要求,可以根据不同的情况适当选择。

继续阅读»

ARP和RARP协议

ARP和RARP是TCP/IP实现中的一个基础协议,它们对于应用程序或系统管理员来说一般是透明的,但是这些概念和工作原理是计算机网络的重要基础,需要仔细理解。
本文将对ARP、RARP以及相关的概念做一个简单的介绍。

继续阅读»

程序的编译、链接与装载

《程序员的自我修养-链接装载与库》是一本值得推荐的书,主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。
本文主要对书中涉及Linux中程序的变异、链接、装载等核心部分内容进行整理,方便查看。

继续阅读»

Python编程的中文问题

字符编码问题是每个程序员必定会遇到的,同样,python的中文问题一直是一个非常令人头疼的问题,本文将介绍Python中涉及到中文细节问题。
建议在阅读这篇文章之前,先前往字符编码详解这篇文章了解相关字符编码的原理细节。

继续阅读»

字符编码详解

字符编码涉及到很多概念如ASCII、Unicode、GBK、GB2312、UTF-8等,是在编程过程中经常遇到的问题,同时也是困扰很多新手程序员的难题,正如随处可见的乱码问题。但字符编码又是计算机的重要基础之一,正确处理字符的输入输出、存储显示问题,是进行下一步软件开发或网站建设的必要前提。
本文将从字符集和字符编码等基础概念出发,详细介绍字符编码所涉及到的点点滴滴,力求以后再遇到相关的问题可以清楚了解问题的本质原因并能够由此找到解决问题的办法。

继续阅读»

进入研二

博客荒废几个月了。
之前在实习根本没时间,现在回到学校,虽然实验室也有事情,不过还是可以抽空再折腾折腾的。想想博客四月份开始买的域名,而且之前在本地也捣鼓了一段时间,大半年就这样过去了,不由感慨时间之快,这里简单理理思绪吧。

Leetcode Largest Rectangle in Histogram

Leetcode algorithms 第 84 题:Largest Rectangle in Histogram。

继续阅读»

Leetcode Remove Duplicates from Sorted List

Leetcode algorithms 第 83 题:Remove Duplicates from Sorted List。

继续阅读»

Leetcode Remove Duplicates from Sorted List II

Leetcode algorithms 第 82 题:Remove Duplicates from Sorted List II 。

继续阅读»

分页: 第一页 «上一页 12345678910 下一页 » 最后一页

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论