• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
吾非名家
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2014年4月7日

算法之合并排序
摘要: 合并排序(MergeSort):又叫归并排序,该算法是用分治策略实现对N个元素进行排序的算法。时间复杂度为O(nlogn)。合并排序的基本思想是:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合,如图:合并排序的方法可以用递归来实现,代码如下: 1 private static int[] mergeSort(int[] num,int[] num1,int l,int r){ 2 int mid; 3 int[] num2 = new int[r + 1]; 4 if(l == r) 5 ... 阅读全文
posted @ 2014-04-07 20:09 吾非名家 阅读(415) 评论(0) 推荐(0)
 
算法之二分搜索法
摘要: 二分搜索法(Binary Search)是一种常用的搜索算法,比起冒泡排序和选择排序来说,二分搜索法的时间效率要更高,为O(logn)。算法思路:在给出的数组按从小到大排好序的情况下,先把目标值与中间值比较,若相等,直接返回中间值下标;若目标值小于中间值,则说明目标值在数组的前半段;若目标值大于中间值,则说明目标值在数组的后半段;然后运用递归,直至搜索出目标值的位置或搜索整个数组都找不到目标值时才停止。下面我直接给出二分搜索法的代码: 1 class BinarySearch 2 { 3 public static int binarySearch(int num, int l, i... 阅读全文
posted @ 2014-04-07 15:48 吾非名家 阅读(456) 评论(0) 推荐(0)
 
设计模式之装饰者模式
摘要: 装饰者模式(Decorator Pattern):装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个装饰对象,来包裹真实的对象,即被装饰对象。 稍微百度一下,看到都是乱七八糟的文章。。这里,我用举例子的方法来给介绍装饰者模式。 从实际出发,把生活中的例子活用到代码中能更好地理解。比如说,工人有很多种,水管工、木匠之类的,不同的职业也有分不同的公司的,A公司、B公司等等。下面我弄了一个图来说明工人、具体工种、不同工种在不同公司之间的关系: 同时,也抛出了一个疑问,这些层次关系要怎么表示,该用继承吗?当然可以用继承,但是有一个问题,假如还有很多别... 阅读全文
posted @ 2014-04-07 01:40 吾非名家 阅读(364) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3