- 博客(9)
- 资源 (5)
- 收藏
- 关注
原创 常见面试概率问题
有一苹果,两个人抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛这吃到苹果的概率是多少给所有的抛硬币操作从1开始编号,显然先手者只可能在奇数(1,3,5,7…)次抛硬币得到苹果,而后手只可能在偶数次(2,4,6,8…)抛硬币得到苹果。设先手者得到苹果的概一条长度为l的线段,随机在其上选2个点,将线段分为3段,问这3个子段能组成一个三角形的概率是多少?一副扑克牌54张,现分成3等份每份18张,问大小王出现在同一份中的概率是多少?
2016-11-30 16:47:45 7100
原创 堆排序详解-Python
堆排序是非常常见考察的一个排序方法,相比于冒泡、选择排序的算法复杂度,堆排序的算法复杂度较低为O(n*log2n); 首先堆是一种数据结构,是一棵完全二叉树且满足性质:所有非叶子结点的值均不大于或均不小于其左、右孩子结点的值,如下是一个堆的示例:这是一个大堆
2016-11-30 14:48:40 833
原创 Python实现快速排序
快速排序的原理:在已知的数列中选择一个数字作为基准,与剩余的数作比较,将比这个基准小的数放在左边,比其大的数放在右边;然后将基准左右两边的数列重复以上步骤,直到基准两边只有一个数字为止; 特点:不稳定,时间复杂度最理想 O(nlogn) 最差时间O(n^2) 算法原理比较简单,易于理解,其实现方法也较为多种,这里我们使用递归调用的思想采用Python实现代码;
2016-11-25 15:57:31 3773
原创 算法复杂度的计算
算法复杂度是程序猿面试中考察几率比较大的一个问题,尤其在一些互联网公司的线上笔试中,经常可以看到这种问题,时间复杂度、空间复杂度等等,而且其本身又是考察算法优劣的一个重要参考,所以在此解析说明一下,希望遇到类似问题可以不再捉急O(∩_∩)O~ 首先我们应该找到程序中最基本的操作,然后考量基本运算操作的重复执行次数;如果基本运算操作重复执行的次数大,则说明算法的复杂度比较高;首先我们需要明
2016-11-24 15:06:24 3828
原创 单链表-Python操作
链表是数据结构中最基本常用的,C++语言中单链表是利用指针操作实现的,python作为面向对象编程的,可以使用创建一个Node类来实现链表,利用类的属性引用来代替指针操作。 下面我们创建了一个节点类,然后编写了几个链表操作,包括创建,插入,删除,输出等:class Node(): # 初始化 构造函数 def __init__(self,value,next=None): self.value=value
2016-11-04 10:31:39 17514
原创 字符串组中统计出现次数最大的-python
一个字符串组成的大数组,统计里面出现次数最大的字符串,并输出,两种方式:m=numpy.argmax(Counter(words).values()) # 注意字典的使用,如何输出所有的键,如何输出所有的键值 如何返回最大的那个的下角标mOut[31]: 1print Counter(words).keys()[m]
2016-11-02 15:25:18 5615
原创 冒泡排序算法-Python描述
冒泡排序的思想:假如数列有n个数,我们从第n个数开始,比较第n个数与第n-1个数的大小,如果第n个小于第n-1个,则交换两者的位置,否则不动;依次进行下去直到数组当中的第一个元素,此时第一个元素就是整个数组当中最小的数值;然后再一次比较数组第n个与第n-1个数组的大小,后面的小于前面的则交换两者的位置,直到整个数组的第2个数为止(因为第一个元素是全数组当中最小的一个,所以不必继续跟它比较了),这样大循环 n-2 次,里面的小循环循环的次数为 直到之前被排出来的那个相对最小值;
2016-11-01 17:53:59 4204
原创 如何判断素数 如何输出范围中的素数
因为如果一个数不是素数是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。
2016-11-01 17:50:22 1095
原创 python求解斐波那契数列
斐波那契数列指的是这样的一组数列: 0 1 1 2 3 5 8............ 后一个元素是前两个元素的和,现在我们要输出斐波那契数列当中的第n个,这里给出两种方法,其中第一个方法效率较低,在数列很大的时候速度不如第二个速度快,代码如下:
2016-11-01 17:09:59 1776
各个学术研究领域的国际顶级会议和期刊杂志
2016-05-13
大数据挖掘数据分析数据科学家进修书单
2016-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人