首页
学习
活动
专区
工具
TVP
发布

余林丰

专栏成员
155
文章
148088
阅读量
46
订阅数
6.比较排序之快速排序
  快速排序(简称快排)因为其效率较高(平均O(nlogn))经常在笔试题中对其考查。   对于快排的第一步是选取一个“基数”,将会用这个“基数”与其它数进行比较交换。而这个“基数”的选择将影响到快排的效率如何,但如果为了选择基数而选择基数则会本末倒置。例如为了找到最佳基数,则需要在整个待排序列中找到中位数,但查找中位数实际上代价又会很高。基数的选择通常来说就是待排序序列中的第一个对象或者中间的一个对象或者最后一个对象。本文以选取第一个元素为例对快排做一个简要分析实现。   以待排序列{6, 5, 3, 1
用户1148394
2018-01-12
6830
3.比较排序之堆排序
  对于堆排序会涉及一些完全二叉树知识。对于待排序列{10, 2, 11, 8, 7},把它看成是一颗完全二叉树,如下图所示。   堆分为大根堆和小根堆:大根堆表示每个根节点均大于其子节点(L(i) 
用户1148394
2018-01-12
5870
10.动态规划(3)——0-1背包问题
  在上一篇《9.动态规划(2)——子集和问题》中,谈到了什么是子集和问题,以及实现。背包问题实际也是子集和问题的一种,不过背包问题不是“判断问题”而是一个“最优问题”。而背包问题实际上又分为“0-1背包”,“完全背包”,本文对“0-1背包”进行讲解。   问题:有n个物品,每个物品的重量为weigh[i],每个物品所对应的价值为price[i],现在有一个背包,背包所能承受的重量为W,问背包能装下的物品总价值最大是多少?   定义s[i, j]表示前i个物品的总价值,j为背包的承重量。当j = W或者最接
用户1148394
2018-01-12
1.1K0
11.动态规划(4)——找零问题
  找零问题:需找零金额为W,硬币面值有(d1, d2, d3,…,dm),最少需要多少枚硬币。   问题:需找零金额为8,硬币面值有(1, 3, 2, 5),最少需要多少枚硬币。 设F(j)表示总
用户1148394
2018-01-12
1.8K0
1.比较排序之冒泡排序
  冒泡排序可以说是在排序算法中最为入门级别的算法之一了。因为其简单易于理解,常在课堂中作为排序的入门算法。   冒泡排序见名生意,其排序过程如同水里的泡一般由下往上逐级递升。下图所示为冒泡排序过程:
用户1148394
2018-01-12
8890
初学数据挖掘——相似性度量(二)
  上一篇中介绍了四个算法,并用四个算法分别计算了两个人的相似度。这篇就来讲讲相似性算法在实际当中怎么用。第一:将指定的人与其他人作相似性比较,并从高到低进行排序;第二:对指定的人推荐未看过的电影。同样还是先给出具体分析,然后给出相应算法,再最后一起给出代码。   根据相似性从高到底排序。 def topMatchs(prefs, person, n=5, similarity=sim_pearson): scores=[(similarity(prefs, person, other),
用户1148394
2018-01-12
1K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档