
算法
文章平均质量分 79
iamdll
这个作者很懒,什么都没留下…
展开
-
快速排序
<br />算法介绍<br /> 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R.Hoare在1962年提出。它的基本思想是:它采用的是一种分治理的思想,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。<br />算法过程<br /><br /> 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(转载 2011-02-15 10:22:00 · 488 阅读 · 0 评论 -
N元语言模型
语言模型是干嘛的?语言模型可以计算任何句子的概率。例如,“I love you”的概率是多少?用数学语言表述,N元语言模型(N-gram model)根据一个词语的前N−1个词语,来计算这个词语的概率。如果我们有了一个2元模型,“I love you”的概率就等于P(I)×P(love|I)×P(you|love)(最后一段解释原因)。2元模型用一个矩阵来表示,比如对于一个有10000个词...转载 2019-01-25 19:36:28 · 466 阅读 · 0 评论 -
阿里字符串输出的问题
阿里一则字符串输出的问题:给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。网上一个兄弟给出的方法:http://blog.youkuaiyun.com/ns_code/article/details/21043665就是先从第一个字符遍历,向后输出,再从第二个字符开始遍历,向后输出,依此类推,直到原创 2014-03-12 11:01:21 · 1045 阅读 · 2 评论 -
在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。 -- Shirley对比编程珠玑 in<Shirley>
http://www.cppblog.com/richbirdandy/archive/2008/09/26/61426.html 题目和基本思路都来源网上,本人加以整理。题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中转载 2013-11-07 22:39:19 · 1096 阅读 · 0 评论 -
<跟着结构之法一起学算法>求子数组的最大和
题目来源是 csdn的结构之法 - http://blog.youkuaiyun.com/v_JULY_v题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为 3, 10, -4,7,原创 2013-11-19 16:19:14 · 719 阅读 · 0 评论 -
第二章、字符串是否包含问题
第一节、一道俩个字符串是否包含的问题1.0、题目描述:假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。从算法是讲,什么方法能最快的查出所有小字符串里的字母在大字符串里都有?比如,如果是下面两个字符串:String 1转载 2011-08-18 13:44:33 · 753 阅读 · 0 评论 -
第一章、左旋转字符串
第一节、左旋转字符串题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。 编程之转载 2011-08-18 13:43:37 · 643 阅读 · 0 评论 -
数据结构面试题(1)
1.有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数。(不准用位图!!)2.腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。 http://topic.youkuaiyun.com/u/20071023/12/720a50bc-f9bc-4e1d-b93f-18748ba7b1ed.html?49602 以下是我自己的伪代码原创 2011-06-30 09:44:00 · 557 阅读 · 0 评论 -
编程珠玑 第一章 问题以及分析解答
编程珠玑的开篇就是讲了如何对大数据量的数据进行排序问题 - 比如 1000w的数的排序问题(美国的电话号码)作者给出了以下思路1)合并排序 -也就是将数据都进来之后2)多输入排序3)位图排序问题如下:1.如果不缺内存,如何使用一个具有库的语言来实现一种排序算法以表示和排序集合? Answer: java.utils.Array 提供了对简单数据类型的排原创 2011-06-30 13:33:00 · 1478 阅读 · 1 评论 -
堆排序
<br />堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。<br />目录堆排序原理及分析起源“堆”定义堆的高度堆排序特点堆排序与直接选择排序的区别算法分析算法描述堆排序算法(C描述)BuildHeap的实现Heapify函数算法实例堆排序(Pascal/Delphi描述)C#描述实现Pascal中的较简单实现堆排序的JAVA实现堆排序的c++实现(降序)AAuto语言实现堆原创 2011-04-07 15:44:00 · 793 阅读 · 0 评论 -
基本排序(冒泡排序,选择排序,插入排序)
<br />1. 冒泡排序<br /> <br /> 算法介绍<br /><br /><br /> 冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均比冒泡排序快,且具有稳定性,但速度不及堆排序、快速转载 2011-02-15 10:25:00 · 888 阅读 · 0 评论 -
8种排序算法
首先来看看排序算法有哪八种: 1.直接插入排序原理 :每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 稳定的排序,最坏时间复杂性为O(n^2),空间复杂度为O(1)。 public void InsertSort<T>(T[] arry,Comparison<T>...转载 2019-03-21 17:06:26 · 169 阅读 · 0 评论