当前位置: 首页 > 模式/算法

一个效率很高的归并排序算法!

今天看到的这种归并排序写法,个人感觉很好 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较, ...

Java,C++和Ruby的性能PK(续文)--关于凸包算法(convex hull)的效率

译者序 本篇blog实际上是Bob大叔对xreborner的一连串的发贴给于的回复(xreborner在上篇blog中对Bob大叔提出了一系列犀利的维护C++权益的观点)。 正文 我在最近的一篇blog中对比了C++、Java和Ruby的时间消耗,其中一个参与者(xreborner)提交了一个convex hull的凸包算法代码。我花了好久来研究其中的蹊跷,直到把算 ...

选择,插入,交换,冒泡,希尔排序算法的效率比较

#include<iostream> #include<time.h> using namespace std; template<class T> void bubbleSort(T arr[],int n) { int temp,i,j; bool flag=false; for(i=0;i<n;i++)//控制趟数 { flag=false; for(j=1;j<n;j++) if(arr[j-1]>arr[j]) { temp=arr[j]; arr[j]=arr[j-1] ...

数据结构——关于KMP算法的效率分析

通常的KMP算法可以描述如下,不知道的可以查相关资料。   从S的pos位置开始寻找字串T   int Index_KMP(String S,String T,int pos){  i=pos;j=1;//这里的串的第1个元素下标是1  while(i<=S.Length && j<=T.Length)  {    if(j==0 || S[i]==T[j]){i++;j++;}&nb ...

算法效率的分析--【以选择排序与冒泡排序为基础】

算法效率的分析--【以选择排序与冒泡排序为基础】               在前面我们实现了选择排序与冒泡排序的具体实现,现在我们从数学的角度分析下算法的效率问题:           & ...

如何使用SSE指令提高FIR算法效率(进化二)

如何使用SSE指令提高FIR算法效率(进化二) 在“如何使用SSE指令提高FIR算法效率(进化一)“一文中,我们通过SHUFPS指令来完成行列向量之间的转化,实现了向量相加一次写操作的功能,很大程度的提高了程序的执行效率。 那么参考SSE/SEE2的指令,我们能否用其他方式来完成呢? 恩…,好像有,再想想… ...

算法导论 第二章作业

//作业2. 1-2 template<class T> void insert(T* A, int  n) {     for (int j = 1; j < n; ++j)     {         T key = A[j];         int i = j - 1;         while (i >= 0 && ...

算法导论-22.2-7-树的直径

一、题目 树T=(V,E)的直径(diameter)定义为max(u,v),亦即,树的直径是树中所有最短路径长度中的最大值。试写出计算树的直径的有效算法,并分析算法的运行时间。 二、思考 step1:以树中任意一个结点为源点,进行一次广度优先遍历,找出离源点距离最远的点d step2:以d为源点,进行一次广度优先遍历 ...

《算法导论》课后习题 2.1-3

  Consider the searching problem: Input: A sequence of n numbers A = <a1, a2,…,an>and a value v. Output: An index i such that A[i] = v or the special value NIL if v does not appear in A. Write pseudocode for linear search, which scans through the sequence, looking for v. Using ...

算法导论学习笔记——动态规划

算法导论学习笔记——动态规划 本文系转载,原文地址:http://www.cppblog.com/Fox/archive/2008/05/07/Dynamic_programming.html 以前在学习非数值算法的时候,曾经了解过动态规划算法(Dynamic programming),以下是对Wikipedia上动态规划的翻译,图也是Wikipedia上的, ...

对比一下数组排序算法效率

      一个让很多人纠结的问题--用什么排序算法 好。还有什么稳定,非稳定的一堆问题。今天闲着,拿几个算法测了一下,报个结果给大家。      首先先放出测试主 文件 代码 ,里面包括有冒泡、快速、插入、鸡W酒等排序 package {      &n ...

一种效率极高的分类算法

分类算法要解决的问题在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。分类编码算法问题就出在前面我们采用了顺序编码,这是一种最简单的编 ...

图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能

图像处理------泛洪填充算法(Flood Fill Algorithm)  油漆桶功能 泛洪填充算法(Flood Fill Algorithm)泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新的颜色,直到封闭区域内的所有像素点都被填充 ...

数字图像处理(五) 利用PCA算法进行人脸识别

    把你的脸部识别出来这样高科技的东西,原来可以简单的实现,说是简单,其实不像之前的那些,这次写不出来,直接拿了高材生老师的代码来理解整个思路(请尊重他的知识产权),将算法读懂。数字图像处理,觉得挺实用的而写这些东西。     首先需要我们提取人脸库,如一个公司,一 ...

算法导论第十二章——二叉查找树的C++代码实现

  二叉排序树(Binary Sort Tree)又称二叉查找树。 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; ...

算法导论第九章习题9.2-3

使用迭代版本的随机选择函数实现选择第i小元素。原理与9.2例题相同,该代码为9.2例题的迭代版实现。具体代码如下: #include<iostream> using namespace std; int RandomdisePartition(int a[] ,int p,int r) { int i,j,temp,num; num=a[r]; j=p-1; for(i=p;i<r;i++) { if(a[i]<num) { j++; ...

矩阵相乘问题 算法导论动态规划P197

public static void main(String[] args) { // TODO Auto-generated method stub int[] a = {30,35,15,5,10,20,25}; int[][] m = new int[a.length][a.length]; int[][] s = new int[a.length][a.length]; int length = m.length; for (int i = 1; i < length; i++) { m[i][i] = 0; } for(in ...

【算法导论】快速排序

搞这一行还是始终绕不过数据结构算法这一个坎,自己不是科班出身,基础不好,还是脚踏实地一步一步的开始学,就从今天开始。 起步是什么呢,搞个简单一点的,快速排序: 参考牛人博客:http://blog.csdn.net/morewindows/article/details/6684558 理解: 1、取数组中的第一个数为key值,将一个数组分 ...

Design Pattern: Prototype 模式

  学习是分享和合作式的! 转载请注明出处:; 文章摘自: ; 您从图书馆的期刊从发现了几篇您感兴趣的文章,由于这是图书馆的书,您不可以直接在书中作记号或写字,所以您将当中您所感兴趣的几个主题影印出来,这下子您就可在影印的文章上画记重点。 Prototype模式的作用有些类似上面的描述,您在父类别 ...

DesignPattern学习笔记(二)

  Iterator Pattern IP是指依序遍历并处理多个数字或变量。   IP的所有参与者: Iterator 迭代器 Interface Iterator{        Public Boolean hasNext(){}        Public Object next(){} }   ConcreteIterator 具体迭代器 clas ...