摘要: 责任链模式 2019-11-10 19:28:21 by冲冲 1、概念 案例:员工要报销8000元,公司规定2000元以下不用签字,2000~5000元需要部门主管签字,5000元以上需要总裁签字。 设计:三个审批人应该继承同一个抽象类,抽象类定义两个方法。①报销签字方法approve(),②审批人 阅读全文
posted @ 2019-11-10 19:50 Yadielr 阅读(197) 评论(0) 推荐(0)
摘要: 观察者模式 2019-11-10 18:11:40 by冲冲 1、概念 多个观察者(继承同一个抽象类)只需要注册到被观察者的通知名单,被观察者如果发生改变,则会主动通知观察者。 观察者继承同一个抽象类,该抽象类定义一个反应方法,用来定义当被观察者发生改变时不同观察者的行为。同时该抽象类在构造时将被观 阅读全文
posted @ 2019-11-10 19:23 Yadielr 阅读(185) 评论(0) 推荐(0)
摘要: 策略模式 2019-11-10 17:45:09 by冲冲 1、概念 策略模式(Strategy Pattern),创建多个不同的策略对象(实现同一个策略接口)和一个使用策略(将策略对象注册为属性成员)的context对象。 本质:设计多个算法方案(它们实现同一个接口,具备可扩展性)。 解决:取代i 阅读全文
posted @ 2019-11-10 18:08 Yadielr 阅读(210) 评论(0) 推荐(0)
摘要: 堆排序 2019-11-10 11:45:11 by冲冲 1、概念 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子 阅读全文
posted @ 2019-11-10 16:57 Yadielr 阅读(545) 评论(0) 推荐(0)
摘要: 基数排序 2019-11-10 11:42:38 by冲冲 1、概念 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 2、基本思想 设有一个初始序列为: R {50, 123, 543 阅读全文
posted @ 2019-11-10 16:47 Yadielr 阅读(5944) 评论(0) 推荐(1)
摘要: 选择排序 2019-11-10 11:43:17 by冲冲 1、概念 选择排序(Selection sort)是一种简单直观的排序算法。 基本思想是,首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序 阅读全文
posted @ 2019-11-10 16:34 Yadielr 阅读(328) 评论(0) 推荐(0)
摘要: 快速排序 2019-11-10 11:43:52 by冲冲 1、概念 快速排序(Quick Sort)使用分治法策略。 ① 基本思想是,选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整 阅读全文
posted @ 2019-11-10 16:29 Yadielr 阅读(369) 评论(0) 推荐(0)
摘要: 归并排序 2019-11-10 11:41:59 by冲冲 1、概念 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略。 分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段 阅读全文
posted @ 2019-11-10 16:21 Yadielr 阅读(248) 评论(0) 推荐(0)
摘要: 插入排序 2019-11-10 11:40:40 by冲冲 1、概念 直接插入排序(Straight Insertion Sort),把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的 阅读全文
posted @ 2019-11-10 16:13 Yadielr 阅读(276) 评论(0) 推荐(0)
摘要: 希尔排序 2019-11-10 11:44:39 by冲冲 1、概念 希尔排序(shell排序),是插入排序(直接插入)的增强版。 特点是,在不断缩小增量的过程中,不断地排序,使得在最终使用插入排序时,序列已经基本有序。插入排序在操作基本有序的序列时效率倍增。 2、基本思想 把序列按步长gap分组, 阅读全文
posted @ 2019-11-10 15:46 Yadielr 阅读(508) 评论(0) 推荐(0)
摘要: 冒泡排序 2019-11-10 11:39:43 by冲冲 1、概念 冒泡排序(Bubble Sort),每次遍历时,它都会从左往右依次地比较相邻两个数的大小,如果前者比后者大,则交换它们的位置。一次遍历之后,将最大元素置于序列末尾。(或者从右往左每一次都将最小元素置于序列头部) 2、基本思想 // 阅读全文
posted @ 2019-11-10 11:40 Yadielr 阅读(321) 评论(0) 推荐(0)
摘要: 排序的稳定性 2019-11-10 09:42:11 by冲冲 1、稳定性 ① 定义:能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面) ② 意义:稳定性本质是维持具有相同属性的数据的插入顺序,如果后面需要使用该插入顺序排序,则 阅读全文
posted @ 2019-11-10 11:35 Yadielr 阅读(11968) 评论(2) 推荐(1)