自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 七大排序算法(下)

(六)归并排序(七)快速排序希尔排序相当与直接插入排序的升级,堆排序相当于简单选择排序的升级,而接下来要介绍的快速排序其实是冒泡排序的升级。快速排序的基本思想是:每次在待排数组中选定一个基准元素,通过一趟排序,使得位于基准元素右侧的元素均大于此基准元素,基准元素左侧的元素均小于此基准元素。这样再分别对基准元素左右侧的元素分别进行排序,直至排序完成。老规矩,先上代码:public ...

2015-09-28 16:36:00 55

转载 七大排序算法(中)

(五)堆排序堆是具有以下性质的完全二叉树:每个结点的值都大于等于(小于等于)其左右孩子结点的值,称为大顶堆(小顶堆)。因此,根结点一定是整个堆的最大值(最小值)。前面讲到的简单选择排序在确定每个当前的最小值时进行了多次比较,虽然这是必须的,但是算法执行过程中并没有把比较结果保存下来,导致了无谓的一些比较。而堆这种数据结构的发明很好的解决了这个问题。根结点进行求最大值时,能够很好的利用...

2015-09-23 22:53:00 68

转载 七大排序算法(上)

排序排序的定义非常简单,就是把乱序状态下的众多元素整理成有序状态。关于排序,有稳定和不稳定之分。关于排序算法,有内排序和外排序之分。本文将对内排序的众多算法进行实现和比较。首先,我们来看一下衡量一个算法性能的因素:(1)时间性能:在内排序算法中,主要有两种操作:比较和移动。衡量一个算法的优劣时,时间性能是最重要的标志。(2)辅助空间:评价算法好坏的另一个关键因素就是执行算法时所需要...

2015-09-23 21:15:00 90

转载 二叉树的遍历

树(tree)是n个结点的有限集。n=0时表示树为空树。在任意一棵非空树中,有且只有一个结点为根结点(root),当n>1时,其余结点可以分为许多个互不相交的有限集T1、T2···,其中每一个集合本身也是一棵树,并且成为根结点的子树。如果把上述中的很多集合换为两个集合,就成了树中一种实用价值比较高的树,成为二叉树。这样二叉树最多有两棵子树,分别是左子树和右子树。下面简单说下二叉树...

2015-09-21 19:52:00 89

转载 链表的排序

本次讨论单向链表的排序。本质上讲,链表的排序与数组的排序在算法上有很多相通的地方,但是由于单向链表只能向后访问的特殊性,那些要求随机访问的排序算法在链表的排序上并不能施展手脚,所以只能采用相邻比较的排序方法:冒泡法,而且只能从前向后冒泡。链表的另一个问题是由于长度不是已知的,所以终止条件只能通过节点是否为空进行判断,而每次的循环次数也是如此。下面是两种排序方法,一种求出长度再排序,另一种...

2015-09-10 15:46:00 69

转载 数据结构(三):链表的Java实现

链表是这样的一种数据结构,其中的各个对象按照线性顺序排列。链表又有单向链表、双向链表、有序链表、无序链表、循环链表及以上各特性组合的链表等,链表尾动态集合提供了一种简单而灵活的表示方法。与数组的线性顺序由其下标决定不同的是,链表的顺序由各个对象里的指针决定。一般情况下,链表由节点(node)串联而成,而每个节点里都有指向下一节点(next)或上一节点(previous)的指针(或引用)...

2015-09-01 15:31:00 80

转载 数据结构(二):队列的Java实现

队列实现的是一种先入先出(FIFO)策略。队列中的INSERT操作称为ENQUEUE,DELETE操作称为DEQUEUE。队列的先入先出特性如同生活中的排队现象一样。因为队列既有队头,又有队尾,所以在实现是需要一个数组和两个分别指向对头和队尾的属性。关于队列属性,现有以下说明:1.队头属性指向队头元素所在位置,队尾属性指向队尾元素的下一个位置,即下一个元素即将插入的位置。2.为防止队...

2015-08-31 16:47:00 74

转载 数据结构(一):栈的Java实现

栈实现的是一种后进先出(LIFO)策略。栈上的INSERT操作称为PUSH,而无元素参数的DELETE操作称为POP。可以使用一个数组来实现一个栈,该数组有一个属性,指向最新插入的元素。以下用Java实现了一个可变长度的堆栈,初始化时指定栈的初始长度,当堆栈空间不足时,数组自动复制并且容量扩容为以前的2倍。import java.lang.reflect.Array;import j...

2015-08-31 15:26:00 59

转载 设计模式(三)装饰者模式

装饰者模式的应用实例 - 咖啡馆星巴克咖啡馆想要一份菜单系统,要求能够计算不同种类咖啡加上不同调料(牛奶、豆浆、摩卡、奶泡。。。)的价格。Tom做了如下实现:每个咖啡都要继承这个饮料类,然后对是否有各种调料进行配置,然后实现cost()方法。这样基本解决了这个问题,但是如果现在又增加了几种饮料,是不是需要更改现在的代码呢?如何才能不对以前代码做修改的基础上实现不同饮料的变化呢?装...

2015-03-11 23:23:00 56

转载 设计模式(二)观察者模式

观察者模式的应用实例 - 天气预报你的公司刚刚赢得一份气象观测站开发的合同,要求三个布告板能根据检测中心气象参数的变化而实时变化。这个就是观察者模式的一个实例,像这样实例还有很多,如报纸的订购,每天的报纸都会发送给那些订阅者。如果你不想订阅了,当然也可以取消订阅,从此便再也不会收到任何信息。public class WeatherData{ public void meatu...

2015-03-07 20:43:00 63

转载 设计模式(一)策略模式

策略模式的应用实例 - 鸭子开发假设一个鸭子实例,要求各种各样的鸭子会游泳、会呱呱叫。按照OO技术的开发原则,我们首先会让鸭子实例的超类Duck实现这些方法,已进行代码的重复利用:DUCKquack()swim()display()//鸭子的其他方法其中,所有的鸭子均会叫,所以超类实现quack(),swim()方法。因为每种鸭子的外观不同,所以display()方法是抽象...

2015-03-05 10:19:00 113

转载 笨猪大改造

开通微博,准备把每天的所学记录下来,争取一天一篇,开始笨猪大改造!转载于:https://www.cnblogs.com/torresliang/p/4261867.html

2015-01-30 11:20:00 95

空空如也

空空如也

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

TA关注的人

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