- 博客(348)
- 资源 (82)
- 收藏
- 关注
原创 经典排序算法 - Proxmap Sort
经典排序算法 - Proxmap Sort这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶这个排序把数字分区了,然后给出一个所谓的键,例如它规定0-9都入0号桶10-19都入1号桶,这样桶覆盖的范围将增大10倍,这在某种情况下是很有用的有了桶排的基础后,再看下边两张图就什么都明
2014-12-16 12:01:06 1210
原创 经典排序算法 - 计数排序Counting sort
经典排序算法 - 计数排序Counting sort注意与基数排序区分,这是两个不同的排序计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组var unsorted = new int[] { 6, 2,
2014-12-16 12:00:31 997
原创 经典排序算法 - 珠排序Bead Sort
经典排序算法 - 珠排序Bead Sort珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdf截图即从上边的论文里抓的屏先了解一个概念,不然不容易理解,一个数字3用3个1来表示一个数
2014-12-16 11:58:34 1788
原创 经典排序算法 - 耐心排序Patience Sorting
经典排序算法 - 耐心排序Patience Sorting这个排序的关键在建桶和入桶规则上建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶入桶规则:只要比桶里最上边的数字小即可入桶,如果有多个桶可入,那么按照从左到右的顺序入桶即可 举个例子,待排数组[6 4 5 1 8 7 2 3]第一步,取数字6出来,此时一个桶没有,根据建桶规则1新建桶,将把自己放进去
2014-12-16 11:58:14 2915
原创 经典排序算法 - 梳排序Comb sort
经典排序算法 - 梳排序Comb sort梳排序还是基于冒泡排序,与冒泡不同的是,梳排序比较的是固定距离处的数的比较和交换,类似希尔那样这个固定距离是待排数组长度除以1.3得到近似值,下次则以上次得到的近似值再除以1.3,直到距离小至3时,以1递减不太好描述,还是看例子吧假设待数组[8 4 3 7 6 5 2 1]待排数组长度为8,而8÷1.3=6,则比较8和2,4和1,并做交
2014-12-16 11:57:35 1376
原创 经典排序算法 - 奇偶排序Odd-even sort
经典排序算法 - 奇偶排序Odd-even sort又一个比较性质的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序举例吧,待排数组[6 2 4 1 5 9]第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比[6 2 4 1 5 9]交换后变成[2 6 1 4 5 9] 第二次比较偶数列,即6和1比,5和
2014-12-16 11:57:03 2042
原创 经典排序算法 - 地精排序Gnome Sort
经典排序算法 - 地精排序Gnome Sort号称最简单的排序算法,只有一层循环,默认情况下前进冒泡,一旦遇到冒泡的情况发生就往回冒,直到把这个数字放好为止直接看它排序的过程,待排数组[6 2 4 1 5 9]先设计一个标识i=0然后从头开始判断,什么时候(i ,所以,如何控制i的值是这个算法的关键例如待排数组:[6 2 4 1 5 9][0
2014-12-16 11:56:12 1035
原创 经典排序算法 - 堆排序Heap sort
经典排序算法 - 堆排序Heap sort堆排序有点小复杂,分成三块第一块,什么是堆,什么是最大堆第二块,怎么将堆调整为最大堆,这部分是重点第三块,堆排序介绍第一块,什么是堆,什么是最大堆什么是堆这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可
2014-12-16 11:55:43 916
原创 经典排序算法 - 希尔排序Shell sort
经典排序算法 - 希尔排序Shell sort希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分,第一部分,希尔排序介绍第二部分,如何选取关键字,选取关键字是希尔排序的关键第一块希尔排序介绍准备待排数组[6 2 4 1 5 9]首先需要选取关键字,例如关键是3和1(第一步分成三组,第二步分成一组),那么待排数组分成了以下三个虚拟组:[6 1]一组[
2014-12-16 11:54:42 1022
原创 经典排序算法 - 鸡尾酒排序Cocktail sort
经典排序算法 - 鸡尾酒排序Cocktail sort鸡尾酒排序基于冒泡排序,双向循环还是看例子吧,给定待排数组[2 3 4 5 1]第一趟过去时的每一步第一步迭代,2 [2 3 4 5 1] 第二步迭代,3 [2 3 4 5 1] 第三步迭代,4 [2 3 4 5 1] 第四步迭代,5 > 1交换[2 3 4 1 5] 第一趟回来时
2014-12-16 11:54:10 1027
原创 经典排序算法 - 选择排序Selection sort
经典排序算法 - 选择排序Selection sort顾名思意,就是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,顺序放入新数组,直到全部拿完再简单点,对着一群数组说,你们谁最小出列,站到最后边然后继续对剩余的无序数组说,你们谁最小出列,站到最后边再继续刚才的操作,一直到最后一个,继续站到最后边,现在数组有序了,从小到大举例先说看每步的状态变
2014-12-16 11:53:32 899
原创 经典排序算法 - 冒泡排序Bubble sort
经典排序算法 - 冒泡排序Bubble sort原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子例子为从小到大排序,原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |第一趟排序(外循环)第一次两两比较6 >
2014-12-16 11:52:55 1208
原创 经典排序算法 - 归并排序Merge sort
经典排序算法 - 归并排序Merge sort原理,把原始数组分成若干子数组,对每一个子数组进行排序,继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组举例无序数组[6 2 4 1 5 9]先看一下每个步骤下的状态,完了再看合并细节第一步 [6 2 4 1 5 9]原始状态第二步 [2 6] [1 4] [5 9]两两合并排序,排序细节后边介绍
2014-12-16 11:51:56 1094
原创 经典排序算法 - 鸽巢排序Pigeonhole sort
经典排序算法 - 鸽巢排序Pigeonhole sort原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了]鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现次数,如果全部为1次或0次那就是桶排序例如var pigeonHole = new int[100];pigeonHole[0]的值表示0的出现次数...pigeonHole[1]
2014-12-16 11:51:13 1632
原创 经典排序算法 - 基数排序Radix sort
经典排序算法 - 基数排序Radix sort原理类似桶排序,这里总是需要10个桶,多次使用首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数例如待排序数组[62,14,59,88,16]简单点五个数字分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样| 0 | 0 | 62 | 0 | 14 | 0
2014-12-16 11:50:01 1102
原创 经典排序算法 – 插入排序Insertion sort
经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。以下代码仅供参考,欢迎指正
2014-12-16 11:49:09 1078
原创 经典排序算法 - 桶排序Bucket sort
经典排序算法 - 桶排序Bucket sort补充说明三点1,桶排序是稳定的2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法我自己的理解哈,可能与网上说的有一些出入,大体都是同样的原理无序数组有个要求,就是成员隶属于固定(有限的)的区间,如范围为[0-9](考试分数为1-100等)
2014-12-16 11:48:47 1213
原创 经典排序算法 - 快速排序Quick sort
经典排序算法 - 快速排序Quick sort原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列举个例子如无序数组[6 2 4 1 5 9]a),先把第一项[6]取出来,用[6]依次与其余项进行比较,如果比[6]小就放[6
2014-12-16 11:48:05 966
原创 关于程序员的59条搞笑但却真实无比的编程语录
我收集了很多编程语录,基本上都跟程序员的生活有关。这些语录涉及软件开发,代码维护,调试纠错,软件bug,系统设计、文档,代码质量,测试和软件开发团队管理等方面。下面的这59条语录虽然很搞笑,但却真实无比。只有程序员才能理解这些编程语句里的真正内涵。闲言少叙,开始吧…程序员编程语录1. 一个好的程序员是那种过单行线马路都要往两边看的人。(Doug Linder)2. 程序有问
2014-12-16 11:39:16 1831
原创 数据库建立索引的原则
铁律一:天下没有免费的午餐,使用索引是需要付出代价的。索引的优点有目共睹,但是,却很少有人关心过采用索引所需要付出的成本。若数据库管理员能够对索引所需要付出的代价有一个充分的认识,也就不会那么随意到处建立索引了。仔细数数,其实建立索引的代价还是蛮大的。如创建索引和维护索引都需要花费时间与精力。特别是在数据库设计的时候,数据库管理员为表中的哪些字段需要建立索引,要调研、要协调。如当建有索引的
2014-12-12 11:54:18 1374
原创 JAVA网站高并发解决方案
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是
2014-12-12 11:51:14 2154
转载 十年的程序员生涯
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档案、养老保险
2014-12-11 16:45:25 1073
原创 Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要 性。所以
2014-12-11 09:27:36 1488 1
原创 Kettle的一些常见问题
摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join 我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起
2014-12-10 10:22:02 8255
原创 Cocos2d-x +Android + Windows 7
折腾了一天,看了好些人写的配置,但是似乎没有一个能解决所有问题。这里记录下我的安装配置过程、遇到的问题以及解决方法。1. 安装Java JDK 和 Eclipse IDE基本的Java编程环境安装,具体参考这里。 2. 安装Android SDK安装路径不要包含空格!安装成功后Eclipse界面会多出上面标记的三个按钮,点击第一个按钮选择
2014-12-08 16:23:56 1097
原创 给Eclipse提速的7个技巧
大约一个月前,我发表了一篇博客,其中介绍了对Eclipse的爱与恨。 有些人问我如何给Eclipse提速,这篇文章就来讨论这个问题。顺带提一下,这篇文章不是比较IDE,所以不要说你讨厌某个IDE而选择另外一个。这篇文章只是关注如何让Eclipse运行得更快。每个技巧都针对Windows、Linux和MacOS用户详细说明。在使用所有优化技巧之后,Eclipse应该能在10秒内启动,并且比以前运
2014-12-05 14:36:40 919
原创 计算机网络
目录[-]OSI参考模型TCP/IP的5层模型TCP/IP通信的三次握手、四次挥手戏说TCP/IP状态转化图MAC地址的概念及其作用ARP协议的用途及其工作原理了解交换机、路由器、网关的概念,并知道各自的用途初识路由表MTURIP、OSPF、BGP认识DNSTCP、UDP和HTTP区别于联系在浏览器中输入一个网站后,都发生了什么
2014-12-05 14:34:51 1948
原创 邮箱扒头像来告诉你怎么写简单的脚本扒图
摘要 手上有几十万邮箱,本来用户系统没有做头像的东西,现在想根据这些邮箱能拿一部分用户的头像,可以直接使用 gravatar的服务,不过这玩意儿不时会被墙,还是拉回来靠谱,第2个途径是qq邮箱,通过分析数据发现,这几十万 用户里面居然有一半以上是qq邮箱,so 要想办法通过不用oauth的方式拿到.爬虫目录[-]用邮箱扒头像来告诉你怎么写简单的脚本扒图思
2014-12-05 14:32:10 2531
原创 大偏移量下Redis、MongoDB分页/排名性能比较
题目其实并不太准确,因为数据库并不会提供分页、排名等功能,提供的只是数据的存取,分页排名这些都是我们基于数据库的实用案例而已。然而无论是Redis还是MongoDB,通常都有一些常规的做分页和排名的方法。本文就通过一些测试数据来向大家介绍Redis和MongoDB(以及传统关系型数据库)在这方面的性能差别。分页首先我们来做一个分页,在MongoDB中示例数据如下所未:db.
2014-12-05 14:30:46 3336 1
原创 Nginx负载均衡配置实例详解
[导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载
2014-12-05 14:29:12 1488
原创 安全的复杂之处:安全web请求的架构
目录[-] 借助于Spring Security的强大基础配置功能以及内置的认证功能,我们在前面讲述的三步配置是很快就能完成的;它们的使用是通过添加auto-config属性和http元素实现的。请求是怎样被处理的?在auto-config场景下,发生了什么事情?用户是怎样认证的? 让我们看一下在较高层次示意图中反映出的抽象工作流程,并将其细化到这个基于
2014-12-05 14:27:10 2320
原创 SpringMVC简单构造restful, 并返回json
文章要要点:快速搭建构造restful的StringMvcGET, POST , PUT , DELETE的各种调用同一资源 多种表述 (ContentNegotiatingViewResolver解析器),既可以返回对象给JSP, 也可以返回JSON快速搭建构造restful的StringMvc首现搭建一个简单的restfulMvc框架
2014-12-05 14:25:56 2062
原创 java实现身份证归属地查询
采用的是聚合网站的接口。json解析用的Gson库。下载地址:http://download.csdn.net/detail/bjq1016/8225447两个JavaBean:?12345678910111213141516
2014-12-05 14:23:45 6396
原创 Nginx多Server反向代理配置
Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。下面我就来说说server_name的使用吧:server_name的匹配顺序Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为:1、准确的ser
2014-12-04 17:32:22 1247
原创 基于android的远程视频监控系统(已开放源码)
基本过程是android作为socket客户端将采集到的每一帧图像数据发送出去,PC作为服务器接收并显示每一帧图像实现远程监控。图片如下(后来PC端加了个拍照功能)。。。 (PS。刚学android和java不久很多东西还不懂,高手若是知道哪些地方可以继续优化的话还请多多指点下啊)系统代码如下:一、android手机客户端(1)AndroidManifest
2014-12-04 11:05:21 3717 1
原创 分布式数据库 HBase
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理
2014-12-04 10:08:35 1344
原创 JAVA爬虫 WebCollector
爬虫简介:WebCollector是一个无须配置、便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。爬虫内核:WebCollector致力于维护一个稳定、可扩的爬虫内核,便于开发者进行灵活的二次开发。内核具有很强的扩展性,用户可以在内核基础上开发自己想要的爬虫。源码中集成了Jsoup,可进行精准的网页解析。量级:
2014-12-03 21:08:13 2461
原创 MYSQL中日期与字符串间的相互转换
一、字符串转日期下面将讲述如何在MYSQL中把一个字符串转换成日期:背景:rq字段信息为:201009011、无需转换的:SELECT * FROM tairlist_day WHERE rq>'2010-07-31' AND rq2、使用:DATE_FORMATSELECT * FROM tairlist_day WHERE DATE_FORMAT
2014-12-03 17:46:12 916
转载 架构师必看-架构之美第15章伸缩性架构设计
3.1 简介 在设计系统架构时,一个比较有趣的问题就是确保系统在伸缩时的弹性。随着越来越多的系统运行在网络上或在互联网上提供访问,伸缩性正变得越来越重要。对于这样的系统,如果你希望误差的范围在几个数量级以内,那么容量规划的想法显然是荒谬的。如果你架起一个网站,然后它火了,你可能会突然发现有几百万的用户访问你的站点。同样容易出现的情况是,你架起了一个网站,却发现没有人感兴趣,你投入
2014-12-02 09:09:48 1095
转载 架构师必看-架构之美第14章-两个系统的故事:设计之城(一)
形式永远服从功能。 —Louis Henry Sullivan “设计之城”软件项目表面上与“混乱大都市”非常相似。它也是用C++写的消费音频产品,运行在Linux操作系统上。但是,它的构建方式有很大不同,所以内部结构也非常不同。
2014-12-02 09:08:44 1205
微信商城分销系统源码2.0
2017-04-07
基于libVLC的ActiveX RTSP实时流媒体播放器源码 支持录像
2017-03-30
Access_JDBC30 无使用次数限制 - 破解
2017-03-22
java Web项目开发案例1-在线音乐网站
2017-03-10
kafka_2.x.x-0.8.1.0
2017-03-10
从gitHub上整理出Android抽屉效果,包括左滑,右滑,上滑,下滑,想要实现的任何菜单效果都有
2017-03-08
dubbo_zookeeper_201410Demo
2017-08-21
nginx实现session共享
2017-08-16
java调讯飞得到语音合成文件
2017-08-11
最全Pycharm教程
2017-07-27
ARDUINO library库函数
2017-06-19
基于ffmpeg的摄像头直播系统
2017-04-20
C# 类似treamviewer的远程桌面源码,使用虚拟显卡效率相当高
2017-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人