数据结构和算法
文章平均质量分 69
紫荆飘香V
喜欢计算机视觉模式识别机器学习
展开
-
链表的基本操作
线性链表的基本操作原创 2014-07-16 19:13:13 · 513 阅读 · 0 评论 -
代码面试最常用的10大算法
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。1.String/Array/Matrix在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成转载 2014-08-12 15:13:27 · 481 阅读 · 0 评论 -
Hash表
http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.htmlHash表 Hash表 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而转载 2014-09-10 01:15:44 · 569 阅读 · 0 评论 -
B-树和B+树的应用:数据搜索和数据库索引
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A转载 2014-09-11 00:00:03 · 462 阅读 · 0 评论 -
关于常见排序算法的稳定性分析和结论
关于常见排序算法的稳定性分析和结论(转载) 2007-10-16 09:25 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的转载 2014-08-28 11:29:36 · 494 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2014-08-28 16:12:36 · 487 阅读 · 0 评论 -
如何学习算法
发信人: ict (后ict时代),信区: ACMICPC标 题:ACM练习建议(zz)发信站:逸仙时空 Yat-Sen Channel (MonMar 29 00:46:08 2010),转信一位高手对我的建议: 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debu转载 2014-08-18 00:03:52 · 737 阅读 · 0 评论 -
看图理解单链表的反转
如何把一个单链表进行反转?方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。方法2:使用三个指针遍历单链表,逐个链接点进行反转。方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。 方法1:浪费空间。 方法2:使用p和q连个指针配合工作,使得两个节点间的指向反向,同时用r记录剩下的链表。转载 2014-08-17 21:49:37 · 561 阅读 · 0 评论 -
红黑树
http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红转载 2014-09-17 01:16:00 · 966 阅读 · 0 评论 -
排序题目一网打尽
排序一、选择题1.某内排序方法的稳定性是指( )。A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( )排序法是不稳定性排序法。 A. 插入 B. 冒泡 C.原创 2014-09-04 12:30:24 · 1193 阅读 · 0 评论 -
快速排序
快速排序算法实现如下:// 快速排序.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include // exception/********************实现一**********************///用来生成一个在start和end之间的随机数int RandomInRan原创 2014-06-08 23:11:57 · 599 阅读 · 0 评论 -
二叉树的基本操作
二叉树的基本操作,包括递归和非递归遍历原创 2014-07-17 19:48:53 · 523 阅读 · 0 评论 -
均方误差(MSE)
均方误差(Mean Squared Error, MSE)在相同测量条件下进行的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径若干次,这就是等精度测量。对于等精度测量来说,还有一种更好的表示误差的方法,就是标准误差。标准误差定义为各测量值误差的平方和的平均值的平方根。设n个测量值的误差为ε1、ε2……εn,则这组测量值的标准误差σ等于:数理统转载 2013-10-17 08:31:47 · 34020 阅读 · 0 评论 -
梯度下降法(一)
梯度下降法是一个一阶最优化算法,通常也称为最速下降法。我之前也没有关注过这类算法。最近,听斯坦福大学的机器学习课程时,碰到了用梯度下降算法求解线性回归问题,于是看了看这类算法的思想。今天只写了一些入门级的知识。我们知道,函数的曲线如下:编程实现:c++ code// 数值分析.cpp : 定义控制台应用转载 2013-11-19 13:08:40 · 1056 阅读 · 0 评论 -
求素数
求2-200的素数.#include int main(){ int flag; int n=2; while(n < 200) { flag = 1; for(int i=2; i<=(int)sqrt(n); i++) { if(n%i == 0) flag = 0; } if(flag == 1) printf("原创 2013-11-12 19:13:29 · 701 阅读 · 0 评论 -
第k个小的数
第k个小的数,利用分治法原创 2014-07-26 22:23:53 · 467 阅读 · 0 评论 -
最大值最小值问题
看了不是很懂,先把别人的代码放着,日后在研究。原创 2014-07-27 21:54:59 · 656 阅读 · 0 评论 -
背包问题(贪心算法)
背包问题// 程序8-4-2.cpp : 定义控制台应用程序的入口点。////背包问题:贪心算法#include "stdafx.h"#define maxnumber 20typedef struct node{ float w; float v; int i;} Object;float find(Object wp[], int n, float M){原创 2014-07-28 22:00:32 · 883 阅读 · 0 评论 -
各类排序算法
1.快速排序.快速排序(对冒泡排序的改进)设要排序的数组是A[0],...,A[N-1],首先任意选取一个数据(通常选用第一个数)作为关键数据;然后把所有比它小的数都放到它前面,所有比它大的数都放在它后面,这样实现了一趟快速排序。算法步骤:1) 设置两个变量i,j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3) 从j开始向原创 2014-07-28 21:01:55 · 492 阅读 · 0 评论 -
算法 时间复杂度|空间复杂度
1.空间复杂度算法中包含原操作次数的多少叫做算法的时间复杂度,用它来衡量一个算法的运行时间性能。 如果存在两个正常数c和n0,对于所有的 n>=n0,有| f(n) | f(n) 是 T(n) 的同数量级函数。把 T(n) 表示成数量级的形式为:T(n)=O(f(n))。称O(f(n)) 为算法的渐近时间复杂度,简称时间复杂度。有时候,算法中基本操作重复转载 2014-09-05 00:07:59 · 507 阅读 · 0 评论