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

12 2018 档案

 
搜索算法—二叉搜索树
摘要:1.什么是二叉搜索树(BinarySearchTrees) 如下图所示:15为树的根节点,10为15的左节点,20为15的右节点,下面的节点如此类推。 每个父节点都有两个子节点(子节点可能为空),左子节点比父节点小,右子节点比父节点大。 2.二叉搜索树的各种功能 一、节点 每个节点应该含有两个子节点 阅读全文
posted @ 2018-12-27 17:04 MichaelCen 阅读(18486) 评论(0) 推荐(5)
排序算法—堆排序
摘要:1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.二叉堆(binary heaps) 进行堆排序前,需要先把数组排成二叉堆,故这里先介绍二叉堆。 阅读全文
posted @ 2018-12-20 11:57 MichaelCen 阅读(2279) 评论(0) 推荐(0)
快速排序改进——3区快速排序(3-way quicksort)
摘要:1.快速排序缺陷 快速排序面对重复的元素时的处理方法是,把它放在了左部分数组或右部分数组,下次进行分区时,还需检测它。如果需要排序的数组含有大量重复元素,则这个问题会造成性能浪费。 解决方法:新增一个相同区域,并把重复元素放进去,下次进行分区时,不对相同区域进行分区。 2. 3区快速排序(3-way 阅读全文
posted @ 2018-12-18 16:44 MichaelCen 阅读(2518) 评论(0) 推荐(0)
排序算法—快速排序
摘要:1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.快速排序(Quicksort) 简单介绍: 快速排序内含一道重要的工序:分区(Partition 阅读全文
posted @ 2018-12-18 15:46 MichaelCen 阅读(886) 评论(0) 推荐(1)
排序算法—归并排序
摘要:1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.归并排序(merge sort) 不同于希尔排序,这里将介绍归并排序。 百度百科的定义:归并排序 阅读全文
posted @ 2018-12-14 16:09 MichaelCen 阅读(985) 评论(0) 推荐(0)
排序算法—希尔排序
摘要:1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.解决方法A 从第一项逐步读到最后一项。每读一项,便把它与之前读过的数字全部进行比较,并把它放在大 阅读全文
posted @ 2018-12-13 16:32 MichaelCen 阅读(303) 评论(0) 推荐(1)
栈与队列(Stack and Queue)
摘要:1.定义 栈:后进先出(LIFO-last in first out):最后插入的元素最先出来。 队列:先进先出(FIFO-first in first out):最先插入的元素最先出来。 2.用数组实现栈和队列 实现栈: 由于数组大小未知,如果每次插入元素都扩展一次数据(每次扩展都意味着构建一个新 阅读全文
posted @ 2018-12-13 11:24 MichaelCen 阅读(44389) 评论(2) 推荐(3)
 

公告


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