Algorithms
文章平均质量分 67
code_caq
机器学习、计算机视觉爱好者。
努力学习的新人!
展开
-
数据结构之链表-链表实现及常用操作(C++篇)
之前刷leetcode和剑指offer,看到很多需要用到链表的题,但没看到什么全面总结链表的文章,刚看到一篇总结链表的,很详细,特别好。出处:http://www.cnblogs.com/byonecry/p/4458821.html自己在此之上再进行了补充数据结构之链表-链表实现及常用操作(C++篇)0.摘要链表数据结构插入节点(单向链表)删除节点(单向链表)反向遍历链表找出中间节点找出倒数第k...转载 2017-04-01 11:44:50 · 2254 阅读 · 0 评论 -
几种查找算法总结与比较—顺序查找、有序查找、散列表查找
静态查找表:只进行查找操作的查找表动态查找表:在查找过程中同时插入查找表中不存在的元素,或者删除已存在的元素本文主要总结静态查找表1.顺序表查找:从第一个或者最后一个记录开始,将每个记录的关键字与给定值比较,若相等则查找成功。C++实现:for(int i=0;i{ if(a[i]==key) return i;}return 0原创 2017-03-31 10:10:14 · 5231 阅读 · 0 评论 -
【智力题小结】
题目:一个桶里有100个白球,100个黑球,现在按如下规则取球:(1)每次从桶里拿出来两个球(2)如果取出两个同色的球,就再放入一个黑球(3)如果取出两个异色的球,就再放入一个白球问:最后桶里剩下一个黑球的概率。答:由规则易得,桶里的球的个数是奇数个,白球是偶数个 要么根据(2)取出两个白球;要么根据规则(3)取出了一黑一白,然后又放了原创 2017-03-31 14:25:25 · 988 阅读 · 0 评论 -
数组shuffle
题意:给数组洗牌,随机打乱顺序思路:(1)遍历数组,每次随机生成一个坐标位置(2)交换当前遍历位置和随机生成的坐标位置的数字,直到遍历到最后一个元素C++实现:vector shuffle(vector &v){ vector res=v; for(int i=0;i { int t=rand()%res.size原创 2017-03-31 14:06:25 · 1460 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历(递归与非递归)
本文主要总结二叉树的前序、中序、后序遍历,分为递归和非递归(1)前序遍历:根→左→右(2)中序遍历:左→根→右(3)后序遍历:左→右→根 首先定义一个二叉树:struct BiTree { char val; BiTree *lchild; BiTree *rchild; }; 1.递归的方法原创 2017-03-31 13:55:39 · 394 阅读 · 0 评论 -
排序算法总结与C++实现(冒泡、简单选择、直接插入、堆、归并、快速)
几种排序算法时间复杂度和空间复杂度:1.冒泡排序 如果是从小到大排序,从最后一个元素开始,依次与前一个元素比较,比前一个元素小则交换。这样小的元素就浮到上面了。第二轮再从最后一个元素开始。 C++实现如下:(优化版,引入了flag)void bubbleSort(vector<int> &A) { bool flag=1; for (int j = 0; j < A.siz原创 2017-04-15 11:55:49 · 822 阅读 · 0 评论 -
STL之containers和<algorithm>-Reference
http://www.cplusplus.com/reference/ 使用的时候需要加上相应的头文件转载 2017-04-08 16:03:30 · 494 阅读 · 0 评论 -
二叉树深度优先(DFS)和广度优先(BFS)算法的非递归实现
广度优先(BFS):队列(先进先出)void BFS(Tree *root){ queue q; q.push; while(!q.empty()) { root=q.front(); //访问队首元素 coutdata; s.pop();原创 2017-03-31 11:29:05 · 1874 阅读 · 0 评论