数据结构&&算法
sina微博_SNS程飞
个人网站:www.ymshici.com
研究方向:机器学习数据挖掘社交网络推荐系统
展开
-
【数据结构&&算法】腾讯2012年实习生笔试加分题
给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂度和O(n)的时间复杂度;除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、堆空间和全局静态变量等) 解析:设b[0]=1由b[i]=b[i-1]*a[i-1]可得b[1] =转载 2014-02-13 15:12:29 · 1036 阅读 · 0 评论 -
【c++系列13】泛型链表类
之前学过泛型,然后知道数据结构中有链表章节,另外原创 2014-05-06 15:55:39 · 1475 阅读 · 1 评论 -
【数据结构&&算法系列】快速排序简单介绍及实现
#coding:utf-8def quick_sort(arr,p,r): if p<r: q = partition(arr,p,r) quick_sort(arr,p,q-1) quick_sort(arr,q,r)def partition(arr,p,r): key = arr[r] i = p-1 for j in range(p,r): if arr[j原创 2014-04-23 17:27:25 · 867 阅读 · 0 评论 -
【数据结构&&算法系列】堆排序简单介绍及其实现
#coding:utf-8# 左孩子节点坐标def left(i): return 2*i + 1 # 如果用位运算的话,注意是 (i<<1) + 1 而不是 i<<1+1 (相当于4*i) , 因为位运算优先级小于加减运算优先级# 右孩子节点坐标def right(i): return 2*i + 2# 父节点坐标def parent(i): return (i-1)>>原创 2014-04-23 16:07:23 · 867 阅读 · 0 评论 -
【数据结构&&算法系列】最大子数组
最大代码#coding : utf-8def find_max_crossing_subarray(arr,low,mid,high): max_left_sum = float("-inf") max_left = mid sum = 0 for i in range(mid, low-1, -1): sum += arr[i] if sum > ma原创 2014-04-23 14:28:00 · 774 阅读 · 0 评论 -
【数据结构&&算法系列】插入排序简单介绍及python代码
简单介绍插入排序原创 2014-04-22 17:34:12 · 1023 阅读 · 0 评论 -
【数据结构&&算法系列】归并排序简单介绍及python代码
代码原创 2014-04-22 22:24:23 · 1039 阅读 · 0 评论 -
【数据结构&&算法系列】并查集简单介绍
并查集主要用来判断动态连通性。原创 2014-04-22 11:37:09 · 790 阅读 · 0 评论 -
【c++系列】vector查找指定元素并删除
实例查找元素7并删除。注意事项查找时可以使用find函数,此时必须将algorithm头文件包含进去。查找完成后,如果vector中包含该元素,则返回第一个元素,或者超出末端的下一个位置,返回的是迭代器。删除元素之前,必须确保返回的不是end迭代器。实例代码#include #include #include using namespace std;原创 2014-03-10 16:58:52 · 21703 阅读 · 3 评论 -
【c++系列】vector初始化和遍历
其中vector初始化有多种方法,本文用已知数组对vector进行初始化。#include #include using namespace std;int main(int argc,char** argv){ int arr[]={1,2,3,4,5,6,7,8,9}; //vector初始化 vector v(arr,arr+sizeof(arr)/siz原创 2014-03-10 16:18:02 · 1381 阅读 · 0 评论 -
【c++系列】set初始化以及查找
注意:find函数返回的是迭代器。#include #include using namespace std;int main(){ int arr[]={1,2,3,4,3,2,1}; int searchNum=5; set iset(arr,arr+sizeof(arr)/sizeof(*arr)); cout<<iset.size()<<endl; if原创 2014-03-10 18:42:06 · 7213 阅读 · 0 评论 -
【c++系列】map容器实现的word count
说明使用map容器实现word count。代码#include #include using namespace std;int main(int argc,char **argv){ string slist[]={"c++","java","python","c++","python","c++"}; size_t slits_size = size原创 2014-03-10 18:19:34 · 1408 阅读 · 0 评论 -
【数据结构&&算法】堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总转载 2014-02-13 13:55:19 · 1026 阅读 · 0 评论 -
【数据结构&&算法系列】KMP算法介绍及实现(c++ && java)
KMP算法介绍及实现。原创 2014-05-31 20:23:05 · 2159 阅读 · 0 评论