
算法
文章平均质量分 71
阿念1989
我的编程之路
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字符串转换成整数
题目描述输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345。主要思想:将输入的字符串,拆解为单个的字符1、去空之后,开始的字符是否为“+”或者“-”;2、每个字符减去‘0’,判读输入的字符是不是0-9的;3、如果为可变数字字符则先前结果乘以10加当前数字;4、特别注意越界的问题。 /** *原创 2014-05-15 12:19:56 · 5300 阅读 · 1 评论 -
字符串是否包含问题
题目描述假设这有两个分别由字母组成的字符串A另外字符串B,字符串B的字母数较字符串A少一些。什么方法能最快地查出字符串B所有字母是不是都在字符串A里?也就是说判断字符串B是不是字符串A的真子集(为了简化,姑且认为两个集合都不是空集,即字符串都不为空。)。分析与解法解法一:暴力轮询就是将B中的每一字符都和A中的字符做对比,思想简单此处就不再实现解法二:原创 2014-05-14 17:31:38 · 1597 阅读 · 0 评论 -
左旋转字符串
题目描述:定义字符串左旋转操作:把字符串前面的若干个字符移动到字符串尾部,如把字符串 abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数,要求对长度为 n 的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。解法一:暴力移位法此方法就是将需要移动的字符串逐个移动到大字符串的末尾移动一个字符(java方法) /** * *原创 2014-05-14 11:06:05 · 1041 阅读 · 0 评论 -
奔走在算法的大路上(一)排序之选择排序
首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法交租选择排序。package Sort;/** * * Description: 选择排序 * * @author zhangjunshuai * @ver原创 2015-04-06 11:48:49 · 1256 阅读 · 0 评论 -
奔走在算法的大路上(一)排序之插入排序
插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。其原理我感觉用一张图说明时最好的了源码packa原创 2015-04-07 14:29:26 · 967 阅读 · 0 评论 -
奔走在算法的大路上(一)排序之希尔排序
希尔排序是插入排序的一种更高效的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。希尔排序最关键的是选对增量,关于增量的选择,建议参考:http://zh.wikipedia.org/wiki/希尔排序 中的步原创 2015-04-08 21:56:51 · 1032 阅读 · 0 评论 -
奔走在算法的大路上(一)排序之归并排序
归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 归并操作 归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。算法描述 归并操作的过程如下:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初原创 2015-04-24 14:41:41 · 1252 阅读 · 0 评论