数据结构&算法
文章平均质量分 56
数据结构+算法实例
blog_1103
一起学习,一起进步
展开
-
2017-我的秋招之路:机器学习/算法工程师(含大量面经)
前言: 从今年的8月1号正式开启秋招到现在,过去三个多月了,发生了很多事情,经历了N多场笔试和面试,深深感慨到本硕双非的学生找算法岗的艰辛。。。,当经过了8、9月份的种种面试挂掉后,终于从十月下旬陆续收到了几个offer,而且其中还有自己喜欢的公司,不得不感慨那句《极限挑战》的结束语“这,就是,命!” 奇怪的数字: 对于我的整个秋招情况,有下面几组数据,我感觉很有意思,而且感觉和自然数...转载 2018-11-07 21:48:26 · 2236 阅读 · 1 评论 -
近邻算法kNN
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。 该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方...原创 2018-10-31 21:19:11 · 149 阅读 · 0 评论 -
python中二分法的代码实现
# 从0到10**7中,找到600 # 必须是有序的列表 import time l=range(10**7) key=600 count=0 def search(l,key,beg,end): global count count += 1 if beg>end: return mid=int((beg+end)/2) # if ...原创 2018-10-31 15:23:31 · 1974 阅读 · 0 评论 -
归并法的代码实现(python)
这个算法的主要思想是:将被排序的数组划分成相等的两个子数组,然后递归使用同样的算法分别对两个子数组排序。最好将两个排好序的子数组归并成一个数组。 归并的过程如下:假设两个子数组是A和B,它们的元素都按照从小到大的顺序排列。将A与B归并后的数组记作C。设定两个指针p1,p2,初始分别指向A和B的最小元素。归并时只需比较p1,p2指向的元素,哪个元素小,就把它从原来的数组移到C,原来指向...原创 2018-10-30 23:50:45 · 308 阅读 · 0 评论 -
快速排序、代码实现(python3版)及其时间空间复杂度分析
快速排序是对冒泡排序的一种改进。基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。 import random def position(l,beg,end):...原创 2018-10-30 23:44:15 · 2341 阅读 · 1 评论 -
二叉树、二叉查找树、B-、B+树
1.0二叉树 一种树结构,每个节点至多只有两个子树,且子树有左右子树之分,其次序不能随意颠倒 1.1 二叉查找树 又称二叉搜索树或二叉排序树或者B树,是最基本的查找树,是AVL树,红黑树等查找树的基础。 1.1.1 二叉查找树的特点 二叉查找树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子...原创 2018-10-30 09:56:00 · 204 阅读 · 0 评论 -
二叉树的代码实现
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/10/29 15:11 # @Author : zhangz # @Site : # @File : erchashu.py # @Software: PyCharm # 实现二叉树 # 构建节点对象 class Node(object): d...原创 2018-10-30 11:22:14 · 1004 阅读 · 0 评论