【数据结构及算法】
杰瑞26
架构师、脚本语言专家;精通Python,Shell,正则表达式;熟悉Java, C, Tcl, Ruby, Scala, Perl等多种编程语言,在性能,开源,硬件及自动化测试方面也有非常丰富的经验
展开
-
浅谈MD5及简单使用
原理简介:MD5即Message-Digest Algorithm 5(信息-摘要算法 第5版),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又名:摘要算法、哈希算法),主流编程语言普遍已由MD5实现。将数据运算为另一固定长度值(十六进制的话:32位),是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有s原创 2014-08-06 23:17:47 · 2909 阅读 · 0 评论 -
运用异或运算符实现加密
通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串。import java.util.Scanner;public class Encypt { public static void main(String args[]){ Scanner scan = new Scanner(System.in);原创 2014-02-24 14:43:23 · 1987 阅读 · 0 评论 -
用异或实现两个变量的互换
一般实现两个变量之间的互换要用第三个变量,这样做可以,但创建新变量,增加了系统开销。如果要交换的变量时两个整数型变量,可以用更高效的方法。例如:^(异或)操作,举例如下:import java.util.Scanner;public class VariableExchange { public static void main(String args[]){ Sca原创 2014-02-24 17:51:06 · 1879 阅读 · 0 评论 -
Perl中Schwartzian转换问题
Perl中著名的Schwartzian转换,其产生背景主要涉及到排序问题:比如说,根据文件名以字母顺序排序,代码如下:use strict;use warnings; my @files = glob "*.xml"; #perl中文件操作符glob提供相当于shell中的通配符的功能my @sorted_files = sort @files; #sort(),排序,默认是字母顺序排序比如说,根据文件名长度排序,其代码如下:use strict;use warni原创 2015-01-28 23:19:15 · 1178 阅读 · 0 评论 -
Java的数组的几种经典算法
Java中与数组相关的算法,常用的有:冒泡排序、选择排序、和反转排序。【冒泡排序】1. 基本思想冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有必要交换为止,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名之。2. 算法因此冒泡排序总的平均时间复杂度为 .3. 算法实现原创 2015-01-25 22:57:15 · 2966 阅读 · 0 评论 -
Python中的推导式介绍
推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:列表推导式字典推导式集合推导式嵌套列表推导式NOTE: 字典和集合推导是最近才加入到Python的(Python 2.7 和Python 3.1以上版).原创 2014-12-20 19:19:48 · 3207 阅读 · 0 评论 -
Python代码优化概要
Python即是面向过程语言,也是面向对象语言,更多情况下充当脚本语言的角色。虽是脚本语言,但同样涉及到代码优化的问题,代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使程序运行效率更高,根据80/20原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗80%的工作量。优化通常包含两方面的内容:1. 减小代码的体积、提高代码的可读性及可维护性。2. 改进算法,降低代码复杂度,提高代码运行效率。选择合适的数据结构一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的原创 2014-12-21 13:19:45 · 1789 阅读 · 0 评论 -
scala学习初步
出于要处理进行大数据分析,听说scala就是做大数据分析和机器学习的,spark就是用scala开发的,百度上一输入scala后面就是大数据,一种基于JVM基础上开发的,一种类似于JAVA的编程语言,一种集合面向对象语言和函数式函数于一体的多范式编程语言。更有传言说,会成为下一代JAVA语言。更主要考虑自己要做大数据分析,OpenStack开源等方面的测试,必须对该门语言有比较深入的了解.原创 2016-05-01 10:27:49 · 819 阅读 · 0 评论