10 2014 档案
摘要:本文地址:http://www.cnblogs.com/archimedes/p/run-hadoop.html,转载请注明源地址。欢迎关注我的个人博客:www.wuyudong.com, 更多云计算与大数据的精彩文章1.运行环境搭建参见《Ubuntu 14.04下安装JDK8》 《Ubuntu14...
阅读全文
摘要:本文地址:http://www.cnblogs.com/archimedes/p/hadoop-standalone-mode.html,转载请注明源地址。欢迎关注我的个人博客:www.wuyudong.com, 更多云计算与大数据的精彩文章一.在Ubuntu下创建hadoop组和hadoop用户1...
阅读全文
摘要:wxPython简介 wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库wxWidgets的 Python 封装和 Python 模块的方式提供给用户的...
阅读全文
摘要:双向链表概述双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继next和直接前驱prev。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。为了标识链表的头和尾,将第一个元素的prev指针和最后一个元素的next指针设置为NULL要反向遍...
阅读全文
摘要:单链表概述单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。从概念上讲,可以把链表想象成一系列连续的元素,然而,由于这些元素是动态分配的(C语言中使用malloc),切记这些元素通常实际上都是分散在内存空间的欢迎关注我的个人博客:www.wuyud...
阅读全文
摘要:Lists当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还是牺牲了不常用的操作的性能来成全常用功能.本文地址:http://www.cnblogs.com/ar...
阅读全文
摘要:在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程。算法的效率或复杂度在理论上表示为一个函数。其定义域是输入数据的长度,值域通常是执行步骤数量(时间复杂度)或者存储器位置数量(空间复杂度)。算法分析是...
阅读全文
摘要:前面已经讲过,Python是一种面向对象的编程语言. 面向对象编程语言中最重要的特征是允许程序员创建类建立数据模型来解决问题.我们之前利用抽象数据类型提供的逻辑来描述数据对象 (它的状态) 和功能 (它的方法). 通过构建类来实现抽象数据类型, 一个程序员可以发挥抽象处理的优势,同时提供详细的现实信...
阅读全文
摘要:本文地址:http://www.cnblogs.com/archimedes/p/ubuntu-jdk8.html,转载请注明源地址。欢迎关注我的个人博客:www.wuyudong.com, 更多云计算与大数据的精彩文章1、下载最新的jdk安装,地址:http://www.oracle.com/te...
阅读全文
摘要:从数据类型开始Python支持面向对象的编程范式,这意味着Python把数据看成解决问题的关键. 在Python中,类似其他的面向对象的编程语言, 我们定义一个类,用来描述数据是什么(状态) 和数据能做些什么 (行为). 类和抽象数据类型相似,因为一个类的用户只看数据项的状态和行为. 数据项在面向对...
阅读全文
摘要:面向对象设计与面向对象编程的关系面向对象设计(OOD)不会特别要求面向对象编程语言。事实上,OOD 可以由纯结构化语言来实现,比如 C,但如果想要构造具备对象性质和特点的数据类型,就需要在程序上作更多的努力。当一门语言内建 OO 特性,OO 编程开发就会更加方便高效。另一方面,一门面向对象的语言不一...
阅读全文
摘要:本文的主题是 Python 中的数字。会详细介绍每一种数字类型,它们适用的各种运算符, 以及用于处理数字的内建函数。在文章的末尾, 简单介绍了几个标准库中用于处理数字的模块。本文地址:http://www.cnblogs.com/archimedes/p/python-number.html,转载请...
阅读全文
摘要:正则表达式是一个很有用的工具,可处理复杂的字符匹配和替换工作。在Python中内置了一个re模块以支持正则表达式。正则表达式有两种基本的操作,分别是匹配和替换。匹配就是在一个文本字符串中搜索匹配一特殊表达式;替换就是在一个字符串中查找并替换匹配一特殊表达式的字符串。本文地址:http://www.c...
阅读全文
摘要:桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶...
阅读全文
摘要:归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。一个归并排序的例子:对一个随机点的链表进行排序本文地址:http://www.cnblogs.com/archimedes/p/merge-sort...
阅读全文
摘要:基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulati...
阅读全文
摘要:计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。本文地址:http://www.cnblogs.com/archimedes/p/counting-sor...
阅读全文
摘要:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位本文地址:ht...
阅读全文
摘要:直接插入排序直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。本文地址:http://www.cnblogs.com/archimedes/p/insert-sort-algorithm...
阅读全文
摘要:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实作出来。使用快速...
阅读全文
摘要:今天将本博客的部分文章建立一个索引,方便大家进行阅读,当然每一类别中的文章都会持续的添加和更新(PS:博文主要使用C语言)博客地址:http://www.cnblogs.com/archimedes/C语言C语言相关原理与技巧:《C语言异常与断言接口与实现》《C语言原子接口与实现》《C语言柔性数组》...
阅读全文
摘要:Gnome排序(地精排序),起初由Hamid Sarbazi-Azad 于2000年提出,并被称为stupid排序,后来被Dick Grune描述并命名为“地精排序”,作为一个排序算法,和插入排序类似,除了移动一个元素到最终的位置,是通过交换一系列的元素实现,就像冒泡排序一样。概念上十分简单,不需要
阅读全文
摘要:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。本文地址:http://www.cnblo...
阅读全文
摘要:本文地址:http://www.cnblogs.com/archimedes/p/stooge-bogo-sort-algorithm.html,转载请注明源地址。Stooge排序算法Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序。在《算法导论》第二版第7章(快速排序)的思考题中被提到,...
阅读全文
摘要:梳排序(Comb sort)是一种由Wlodzimierz Dobosiewicz于1980年所发明的不稳定排序算法,并由Stephen Lacey和Richard Box于1991年四月号的Byte杂志中推广。梳排序是改良自冒泡排序和快速排序。在冒泡排序算法中,只比较阵列中相邻的二项,即比较的二项...
阅读全文
摘要:鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。使用鸡尾酒排序为一列数字进行排序的过程本文地址:http://www.cnblogs.com/archimedes/p/cocktail-sort-algorithm....
阅读全文
摘要:奇偶排序,或奇偶换位排序,或砖排序,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一种比较排序。该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换。下一步重复该操作,但针对所有的(偶-奇)位置数字对。如此交替...
阅读全文
摘要:冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序对n个项目
阅读全文
摘要:主要特征1、使用hash函数2、预处理阶段时间复杂度O(m),常量空间3、查找阶段时间复杂度O(mn)4、期望运行时间:O(n+m)本文地址:http://www.cnblogs.com/archimedes/p/karp-rabin-algorithm.html,转载请注明源地址。算法描述在大多数...
阅读全文
摘要:主要特征1、没有预处理阶段2、需要常量额外空间3、通常需要模式串窗口向右移动一个位置4、可以按照任意顺序进行比较5、搜索的时间复杂度为O(mn)6、文本字符期望比较次数:2n本文地址:http://www.cnblogs.com/archimedes/p/brute-force-algorithm....
阅读全文
摘要:一般矩阵乘法算法: 原理:矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的栏数(column)和第二个矩阵的列数(row)相同时才有定义。一般单指矩阵乘积时,指的便是一般矩阵乘积。若A为m×n矩阵,B为n×p矩阵,则他们的乘积AB会是一个m×p矩阵。其乘积矩阵的元素如下面式子得出: 代码如下
阅读全文
摘要:基本概念和性质在计算机科学中,trie,又称前缀树或字典树或单词搜索树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有...
阅读全文