算法学习
Stephen的Blog
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串“12345”,则输出整数“12345”
今天这道算法题比较简单,主要考察的思考问题的全面性。这个需要考虑的几种情况。 如果输入的整数字符串是个负数,怎么处理? 如果输入的第一个字符是0,则怎么处理? 如果输入的是非0~9之间的字符怎么处理? 这是目前我能考虑到的问题。还是使用Matlab实现吧,主要是使用字符的ASCII值来进行这个问题的处理。clcclearclosestrInput='-12345';strLength=原创 2017-07-31 15:52:34 · 5690 阅读 · 0 评论 -
LintCode-A + B 问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。您在真实的面试中是否遇到过这个题? Yes样例如果 a=1 并且 b=2,返回3注意你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。挑战显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?转载 2017-07-24 09:42:30 · 320 阅读 · 0 评论 -
排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
最近在学习排序算法的一些知识。还是比较有趣的。所以好好研究了一下各个算法。并且使用matlab进行了个基本的实现,目前仅仅是实现吧,优化什么的可能目前的水平达不到吧,毕竟是用matlab实现,还是比较简单。以后还是希望使用C/C++,或者python来实现一下。先本着学习算法思想的原则,用matlab搞一搞吧。##冒泡排序 ##冒泡排序 思想这个方法就是在每一趟的循环中依次比较前后两个元素之间的大原创 2017-08-01 10:49:05 · 8474 阅读 · 1 评论 -
排序算法二:快速排序算法原理以及MATLAB与Python实现
今天继续学习排序算法。今天的主角是快速排序算法。1. 快速排序基本原理快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区原创 2017-08-15 16:37:00 · 7718 阅读 · 0 评论 -
排序算法三:堆排序基本原理以及Python实现
1. 基本原理堆排序就是利用堆的特性进行一个无序序列的排序工作。堆的特点堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要不小于其孩子最小堆要求节点元素都不大于其左右孩子。两者对左右孩子的大小关系不做任何要求,其实很好理解。有了上面的定义,我们可以得知,处于最大堆的根节点的元素一定是这个堆中的最大值。其实我们的堆排序算法就是抓住了堆的这一特点,每次都取堆顶的元素,将其放在序列最原创 2017-08-17 10:46:11 · 706 阅读 · 3 评论 -
排序算法四:归并排序基本原理以及Python实现
1. 基本原理归并排序建立在归并操作上的一种算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是将两个已经有序的序列合成一个有序的序列的过程。因此,对于一个待排序的序列来说,首先要将其进行分割,得到有序的子序列,再进行归并操作,最终得到有序的序列。归并的基本思想假设有两个有序的序列,需要合成一个序列。其实就是不断的比较两个序列开头的元素大小就可以。if a原创 2017-08-21 14:44:54 · 653 阅读 · 0 评论 -
算法题:在一个字符串中找到只出现一次的字符。如输入abaccdeeff,则输出bd。
今天的算法学习还是和字符串有关,这个题目据说是以前的某公司面试的笔试题目。题目意思就是说,在一个字符串中找到只出现了一次的那些字符,并且输出来。作为非IT的我,平时使用Matlab比较多。不是科班出身,对于这个题目的理解可能也比较简单。但是也算是一个算法的锻炼吧,每天进步一点。一个更主要目的就是养成记录的习惯,积少成多。不多说直接上我写的matlab代码吧常规算法 Matlabclcclearc原创 2017-07-27 21:17:19 · 1068 阅读 · 0 评论
分享