自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

给永远比拿愉快

操蛋的人生操蛋地过

  • 博客(11)
  • 资源 (19)
  • 收藏
  • 关注

原创 基数排序

基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。比较官方地说,基数排序是一种基于多关键字的排序。基数排序具体过程如下: 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。 然后,从最低位开始,依次进行一次排序。这个排序并非比较大小,而是将对应的数字放置在其对应的桶中。即个位数字是0的数字放置在索引为0的

2017-05-25 19:54:30 759

原创 归并排序

归并排序采用分而治之(divide and conquer)的思想,通过将已经排好序的子序列合并,得到最终完全有序的序列。所以归并算法包括两大步骤:第一步是“分割”,第二步是“合并”,即先对原始序列进行分割排序,使每个子序列有序,然后再通过合并使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二路归并的过程大致如下:归并过程为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第

2017-05-25 14:24:39 710

原创 使用graphviz绘制二叉树(二)

在上一篇博客中《使用graphviz绘制二叉树》,提到了一些graphviz的简单的用法。可是如果用上一篇文章中介绍的方法绘制二叉树的话,画出来是及其丑陋的,子节点位置摆放不太好看。自己可以动手试试! 比如我编写了一个tree.dot文件:graph g { graph[ordering="out"]; A--B; A--C; B--D; B--E;

2017-05-12 20:55:00 5984 7

原创 使用graphviz绘制二叉树

Graphviz是开源免费跨平台图形绘制工具,使用其提供的dot语法,可以很方便的用来绘制“图”结构(这里的图可以理解为是数学上或者计算机科学中所说的图),并支持多种格式输出。语法首先,来简单看一下dot语法。 1. 使用digraph关键字定义有向图,使用->表述节点之间的关系。如: (g是图的名称,a,b,c是三个节点)digraph g { a->b; b->c; c->a;

2017-05-12 15:23:44 10009 1

原创 堆排序

堆排序采用的数据结构是完全二叉树,所以在介绍堆排序之前,我们先看看完全二叉树的定义及性质。定义一:只有最下面的两层结点度能够小于 22,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。定义二:若设二叉树的深度为 hh,除第 hh 层外,其它各层 (1~h−1)(1~h-1) 的结点数都达到最大个数,hh 层所有的结点都连续集中在最左边,这就是完全二叉树。 完全二叉树是由满二叉树而引出来的

2017-05-11 21:34:18 703

原创 直接选择排序

选择排序是一种简单直观的排序算法。其基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。经典的选择排序算法有:直接选择排序和堆排序。下面是直接选择排序的Java实现:// 交换数组中的两个元素public static void swap(int[] numbers, int i, int j) {

2017-05-11 17:57:36 626

原创 常见排序算法

注:点进链接查看算法具体实现!!!插入排序直接插入排序希尔排序交换排序冒泡排序快速排序选择排序直接选择排序堆排序归并排序基数排序总结 注:图片来自网络,侵权删!

2017-05-11 17:25:58 506

原创 希尔排序

希尔排序是对直接插入排序的改进,其实质就是分组插入排序,该方法又称缩小增量排序。 该算法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的一系列元素组成)分别进行直接插入排序,然后依次缩减增量再进行排序,直到增量为1(即对全体数据元素进行一次直接插入排序)。 希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快

2017-05-11 17:12:13 555

原创 直接插入排序

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。经典的插入排序算法有直接插入排序和希尔排序。 直接插入排序的基本思想是:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 图示如下(自百度图片,若有侵权,请告知): Java代码

2017-05-11 15:34:42 579

原创 冒泡排序

冒泡排序应该算是最简单的排序算法了,其过程如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。Java版本实现:public class So

2017-05-10 21:50:34 680

原创 快速排序算法

快速排序算法的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。我们来看看一趟排序中如何将数据划分为两部分,使得左边部分比给定元素小,而右边部分比给定元素大。 首先,我们选定一个数字作为中轴元素用于划分数据,我们选择数据的第一个元素。 然

2017-05-10 17:56:50 997

Android编程权威指南

国外计算机书籍翻译版本!课程从基础知识讲起,各章节内容以循序渐进的方式编排,本书旨在让你跨越学习的初始障碍,能够充分利用其他各种参考资料和代码实例类图书来深入学习。

2015-03-07

C#编程规范

想让自己的代码更规范,看看C#编程规范!

2015-02-02

windowbuilder-indigo

开发Java桌面程序的Eclipse插件,以可视化的形式进行控件的拖拽!

2015-02-02

exe4j_windows-x64_4_5_2

帮你轻松完成Java程序打包成exe程序,附带注册码!

2015-02-02

Struts_Hibernate_Spring集成开发宝典

Struts_Hibernate_Spring集成开发宝典,实例讲解很详细!JavaWeb开发值得参考!

2015-02-02

VC++_2010入门经典

《VC++_2010入门经典》完全版,完全解析VC++2010,学习VC++的经典图书!

2015-02-02

JQuery UI API

JQuery开发的API帮助文档,提供详细的函数说明和用法!

2014-03-09

JQuery API CHM

JQuery开发的API帮助文档,里面有各种函数的详细用法!

2014-03-09

JavaScript使用范例宝典

JavaScript使用帮助文档,里面提供了很多示例参考

2014-03-09

Java+EE+6+API+Specifications_中文版

Java Web开发API手册 Servlet JSP官方API

2013-12-05

Expression_Blend实例中文教程

开发Silverlight程序,Expression Blend作为开发的利器,入门的好资料……

2013-03-14

Java基础知识

最新的java开发基础知识 从入门开始到精通

2012-09-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除