裕博的博客

作者深耕移动端Android领域,浅尝其他领域。

算法与数据结构笔记20——选择排序(Selection sort)

概念 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定...

2019-03-06 09:34:19

阅读数 15

评论数 0

算法与数据结构笔记19——希尔排序(Shell's Sort)

概念 希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 代码实例 package com.wyb.sort; import java.util.A...

2019-03-06 08:58:47

阅读数 9

评论数 0

算法与数据结构笔记18——直接插入排序

算法基本思想 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素;排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。 代码实例 package com.wyb.sort; import ja...

2019-02-13 10:12:20

阅读数 25

评论数 0

算法与数据结构笔记17——快速排序(Quicksort)

前言 前面我们说到冒泡排序,下面要讲的快速排序是对冒泡排序的改进。 快速排序的概述 快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快...

2019-02-13 09:35:01

阅读数 28

评论数 0

算法与数据结构笔记16——冒泡排序(Bubble Sort)

冒泡排序概述 冒泡排序是指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。 冒泡排序原理 比较两个相邻的元素,将值大的元素交换至右端。 冒泡排序实现...

2019-02-13 09:24:19

阅读数 39

评论数 0

算法与数据结构笔记15——算法的时间复杂度和空间复杂度

时间复杂度(Time Complexity) 一般情况下,算法中的基本操作语句的重复执行是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),是的使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n) = O(f(n)),...

2019-02-12 17:01:47

阅读数 40

评论数 0

算法与数据结构笔记14——递归

递归概述 在一个方法(函数)的内部调用该方法(函数)本身的编程方式。 递归的例子 package com.wyb.recursion; public class TestRecursion { public static void main(String[] args) { print(1...

2019-02-12 16:09:40

阅读数 24

评论数 0

算法与数据结构笔记13——双向循环链表

双向循环链表概述 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 双向循环链表图 代码示例 1.创建一个双向链表类DoubleNode pa...

2019-02-12 11:53:37

阅读数 37

评论数 0

算法与数据结构笔记12——循环链表

循环链表概述 循环链表是另一种形式的链式存贮结构。表中最后一个结点的指针域指向头结点,整个链表形成一个环。 循环链表图 循环链表Demo 1.创建一个循环链表类LoopNode package com.wyb.loop; public class LoopNode { // 节点内容 in...

2019-02-12 10:08:25

阅读数 24

评论数 0

算法与数据结构笔记11——单链表(Singly Linked List)

前言 了解数据结构的小伙伴,应该有听说过单链表。那么是单链表呢?单链表的使用是怎么样的呢?下面就分享一下我理解的单链表。 单链表概念 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示...

2019-02-11 18:33:20

阅读数 43

评论数 0

算法与数据结构笔记10——队列

前言 上一篇博客讲到栈,栈的特点就是先进去后出来。队列是先进去先出来,这篇博客分享一下什么是队列。 队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删...

2019-02-11 15:25:07

阅读数 44

评论数 0

算法与数据结构笔记9——栈(stack)

前言 相信学习编程的小伙伴们都有听说过栈,那什么是栈呢?要什么清晰表达呢?这篇博客将为大家分享“栈”。 栈 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新...

2019-02-07 22:33:58

阅读数 15

评论数 0

JavaWeb笔记2——SWing程序结构

前言 JFrame有标题、边框、菜单、大小和管理窗口一些按钮。JWindow没有标题、没有管理窗口的按钮。 实际上我们主要用JFrame开发SWing程序。 SWing程序开发 构建SWing程序主要有两种方式:JFrame或者继承JFrame。下面分享一下两种实现方式。 SWing程序利用JFr...

2019-02-06 23:37:28

阅读数 13

评论数 0

JavaWeb笔记1——图形用户界面技术

前言 Java图形用户界面技术主要有AWT、Applet、SWing和JavaFX。下面简单介绍一下 1.AWT AWT(Abstract Window Toolkit)是抽象窗口工具包,AWT是Java程序提供的建立图形用户界面最基础的工具集。 AWT在实际的运行过程中调用所在平台的图形系统,因...

2019-02-06 23:35:09

阅读数 39

评论数 0

Android学习笔记33——Binder

前言 在学习《Android开发艺术探索》书中的Binder的时候,刚哥有说到侧重介绍Binder的使用以及上层原理。博主这里打算结合书中知识和网上查找到的资料来说说Binder机制。 Binder简介 Binder是Android中的一个类,它实现了IBinder接口。从IPC角度来说,Bind...

2019-02-05 22:22:19

阅读数 15

评论数 0

Android学习笔记32——Parcelable接口

前言 前面介绍了通过Serializable方式来实现序列化的方法,这里介绍另外一种序列化方式Parcelable。它也是一个接口,只要实现这个接口,一个类的对象就可以实现序列化并可以通过Intent和Binder传递。 Parcelable的例子 public class User implem...

2019-02-05 19:46:29

阅读数 93

评论数 0

Android学习笔记31——Serializable接口

前言 在上一篇Android学习博客中聊到了Android多进程模式,当我们需要通过Intent和Binder传输数据时就需要使用Serializable或者Parcelable。还有如果我们需要把对象持续化到储存设备上或者通过网络传输给其他客户端,这个时候也需要使用Serializable来完成...

2019-02-05 15:26:36

阅读数 54

评论数 0

前端笔记71——利用键盘码来控制div移动

前言 在生活中肯定有玩过贪吃蛇的游戏,那么要怎么样用键盘码来实现div的移动呢?下面就分享一个Demo。 利用键盘码来控制div移动源码 <!DOCTYPE html> <html> &lt...

2019-01-29 18:23:50

阅读数 59

评论数 0

前端笔记70——仿百度登录窗口拖拽效果

前言 在我们使用百度相关的功能网页的时候,我们要去登录账号。但是小伙伴们有没有关注过百度的登录窗口的拖拽效果呢?下面分享仿百度登录拖拽效果的源码 代码 <!DOCTYPE html> <html> &...

2019-01-29 18:16:37

阅读数 71

评论数 0

前端笔记69——窗口事件

前言 前面分享了鼠标事件、键盘事件、表单事件,再分享一个窗口事件。窗口英文是windows,简单理解窗口事件是windows有关的事件。 事件名称和触发场景 事件名称 触发场景 onload 当对象加载完成以后触发 onresize 当窗口改...

2019-01-28 23:15:35

阅读数 47

评论数 0

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