随笔分类 -  algorithm

1

李宁老师免费视频发布了,包括但不限于Python、Java等领域
摘要:李宁老师免费视频已经推出了,包括《学Python,一套视频就够了》、《学Java,一套视频就够了》等热门视频课程,完全免费哦! 阅读全文

posted @ 2020-03-13 12:06 银河使者 阅读(472) 评论(0) 推荐(1) 编辑

算法君带你学算法(1):最长回文字符串
摘要:算法君:小白同学,给你出道算法题,看你小子算法能力有没有长进。算法小白:最近一直在研究算法,刷了很多算法题,正好活动活动大脑,来来来,赶快出题!算法君:听好了,题目是:求一个字符串中最长的回文字符串。 阅读全文

posted @ 2019-12-24 15:00 银河使者 阅读(847) 评论(0) 推荐(2) 编辑

一道腾讯面试题的思考:到底谁会赢?
摘要:有甲乙两家伙用一个英语单词玩游戏(无聊的人还是很多的!!!)。两个人轮流进行,每个人每次从中删掉任意一个字母,如果剩余的字母序列是严格单调递增的(按字典序a b c ....z,假设单词字母不区分大小写,也就是说,a与A算相等),则这个人胜利。假设两个人都足够聪明(即如果有赢的方案,都不会选输的方案 ),甲先开始,问他能赢么? 阅读全文

posted @ 2013-12-15 21:47 银河使者 阅读(4819) 评论(22) 推荐(2) 编辑

Twitter算法面试题详解(Java实现)
摘要:最近在网上看到一道Twitter的算法面试题,网上已经有人给出了答案,不过可能有些人没太看明白(我也未验证是否正确),现在给出一个比较好理解的答案。 阅读全文

posted @ 2013-11-03 17:51 银河使者 阅读(4098) 评论(12) 推荐(2) 编辑

百度面试题:求绝对值最小的数
摘要:有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。 阅读全文

posted @ 2013-01-29 15:07 银河使者 阅读(9216) 评论(88) 推荐(5) 编辑

不使用中间变量交换两个数(Java版)
摘要: 在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋。在本文介绍了两个方法(其实原理都是一个)。其基本原理就是数的中和。 也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中。然后再通过同样的运算符将a或b中和掉。这样实际上是利用了a或 b本身作为了中间变量。 阅读全文

posted @ 2010-07-28 19:13 银河使者 阅读(9425) 评论(13) 推荐(1) 编辑

获得N^2个往返接力数字表格的算法
摘要:在描述算法之前,先看看下面的5*5的表格: 1 3 4 10 11 2 5 9 12 19 6 8 13 18 20 7 14 17 21 24 15 16 22 23 25 上面的表格很容易看出规律。就是从左上角第一个格开始(起始为1),然后延右上角到左下角的斜线。先从下到上,再从上到下。开始按数字递增排列。也就是说每一个斜线上分别有如下几组数字: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 阅读全文

posted @ 2009-07-24 13:35 银河使者 阅读(2036) 评论(7) 推荐(1) 编辑

数组移动算法算法实现
摘要:对于有n个元素的数组 int a[n]={....};写一个高效算法将数组内容循环左移m位 比如: int a[6] ={1,2,3,4,5,6} ,循环左移3位得到结果{456123}, 要求: 1不允许另外申请数组空间,但可以申请少许变量 2不允许采用每次左移 阅读全文

posted @ 2008-05-16 19:37 银河使者 阅读(1880) 评论(1) 推荐(0) 编辑

冒泡排序(bubble sort)算法实现
摘要:冒泡排序是最基本的排序算法,常被做为内部排序的第一个排序算法进行讲解。它的原理非常简单,只是一个两层循环,每次将最大或最小的放到数组最后。 阅读全文

posted @ 2008-05-16 19:34 银河使者 阅读(1076) 评论(0) 推荐(0) 编辑

插入排序(insertion sort)算法实现
摘要: 插入排序算法的原理很简单,首先将数组的第一个数data[0]看成是有序的,然后从第二个元素开始和它前面的元素进行比较,如果从前面的某一个数大,就交换。由于前面的元素是有序的,所以就使有序元素的个数逐渐增大,直到等于n。插入排序的时间复杂度为O(n^2)。 阅读全文

posted @ 2008-05-16 19:31 银河使者 阅读(753) 评论(0) 推荐(0) 编辑

选择排序(selection sort)算法实现
摘要:从字面上理解,就是通过不断地选择数组元素,从而达到排序的目的。我插入排序类似,假设第i(in)个数组元素data[0]是最大的(从大到小排序),然后依次扫描i + 1 到 n - 1的元素,找到比第i个元素大的元素。最后将它们交换。 阅读全文

posted @ 2008-05-16 13:20 银河使者 阅读(488) 评论(0) 推荐(0) 编辑

希尔排序(shellsort)算法实现
摘要:希尔排序(shellsort)又叫增量递减(diminishing increment)排序,是由D.L. Shell发明的,这个算法是通过一个逐渐减小的增量使一个数组逐渐趋近于有序从而达到排序的目的。 阅读全文

posted @ 2008-05-15 22:00 银河使者 阅读(8396) 评论(4) 推荐(0) 编辑

归并排序(merge sort)算法实现
摘要:归并排序(merge sort)体现了分治的思想,即将一个待排序数组分为两部分,对这两个部分进行归并排序,排序后,再对两个已经排序好的数组进行合并。这种思想可以用递归方式很容易实现。归并排序的时间复杂度为O(nlogn),空间复杂度为O(n)。 阅读全文

posted @ 2008-05-14 22:55 银河使者 阅读(3469) 评论(2) 推荐(0) 编辑

快速排序(quicksort)算法实现
摘要:快速排序(quicksort)是分治法的典型例子,它的主要思想是将一个待排序的数组以数组的某一个元素X为轴,使这个轴的左侧元素都比X大,而右侧元素都比X小(从大到小排序)。然后以这个X在变换后数组的位置i分为左右两个子数组,再分别进行快速排序,直到子数组中只有一个元素为止。 阅读全文

posted @ 2008-05-14 20:12 银河使者 阅读(3615) 评论(10) 推荐(0) 编辑

得到第K个大的数算法研究
摘要:第一种算法是最容易想到的,就是利用快速排序的思想,将一个数组分成以某一个数X为轴,左边的所有的数都比X小,而右边的数都比X大。但我快速排序不同的是,在这个算法中只考虑X的一边,而不是两边都考虑。 阅读全文

posted @ 2008-05-12 21:05 银河使者 阅读(3390) 评论(18) 推荐(0) 编辑

用C#2.0实现网络蜘蛛(WebSpider)
摘要:本文讨论了如何使用C#2.0实现抓取网络资源的网络蜘蛛。使用这个程序,可以通过一个入口网址(如http: //www.comprg.com.cn)来扫描整个互联网的网址,并将这些扫描到的网址所指向的网络资源下载到本地。然后可以利用其他的分析工具对这些网络资源做进一步地分析,如提取关键词、分类索引等。也可以将这些网络资源作为数据源来实现象Google一样的搜索引擎。 阅读全文

posted @ 2008-05-12 13:20 银河使者 阅读(6707) 评论(29) 推荐(0) 编辑

棋盘覆盖问题的算法实现
摘要:在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖。 阅读全文

posted @ 2008-05-11 20:39 银河使者 阅读(8723) 评论(6) 推荐(1) 编辑

拆半查找的递归和非递归算法
摘要:本文给出了折半查找在递归和非递归实现 阅读全文

posted @ 2008-05-11 20:28 银河使者 阅读(2191) 评论(11) 推荐(0) 编辑

整数划分算法原理与实现
摘要:整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 阅读全文

posted @ 2008-05-11 15:39 银河使者 阅读(11644) 评论(10) 推荐(1) 编辑

全排列算法原理和实现
摘要:全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为 例说明如何编写全排列的递归算法。 阅读全文

posted @ 2008-05-11 09:30 银河使者 阅读(126093) 评论(35) 推荐(15) 编辑

1

导航