算法学习
文章平均质量分 78
tiandawangliang
这个作者很懒,什么都没留下…
展开
-
快速排序
转载于 坐在马桶上看算法:快速排序http://developer.51cto.com/art/201403/430986.htm高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个转载 2016-01-05 23:50:47 · 279 阅读 · 0 评论 -
算法学习【1】三个空汽水瓶可以换一瓶汽水
开始在牛客网上刷题,遇到的第一题是“换汽水”问题: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果原创 2016-01-12 19:45:27 · 26396 阅读 · 3 评论 -
算法学习【4】
1、判断一个二进制数中有多少个1 思路1:时间复杂度为O(二进制数长度)。判断最右一位是否为1并赋值"num+=v&0x0x",数右移一位"v>>1",循环直到数为0。 思路2:时间复杂度为O(二进制数中1个数) 将二进制数中最右的1置0,v = v&(v-1), num++,循环直到数为0 int count(in原创 2016-04-01 15:16:04 · 355 阅读 · 0 评论 -
算法学习【7】常见排序算法
部分内容参考:http://blog.csdn.net/whuslei/article/details/6442755 常见排序算法的时间复杂度: 注:图片来源http://blog.chinaunix.net/uid-21457204-id-3060260.html 在平均时间复杂度为O(nlogn)的排序算法中,归并排序原创 2016-04-21 16:09:10 · 435 阅读 · 0 评论 -
算法学习【6】寻找最小的k个,
1、输入n个整数,输出其中最小的k个。 思路1:先快速排序,然后取前k个数。时间复杂度:O(n * log n)+O(k)=O(n * log n)。 思路2:定义一个长度为k的数组result,将前k个整数放入result;采用选择或交换排序找到result数组的最大值max;依次遍历后n-k个整数,若其>max,说明其不是最小k个数之一并跳过,若其<max,则使ma原创 2016-04-07 19:11:24 · 498 阅读 · 0 评论 -
算法学习【5】字符串全排列
在面试中经常遇到字符串全排列问题,现整理常见情况如下:1、输入字符串,输出该串中所有字符能够排列出来的字符串,例输入”abc“,输出”abc、acb、bac、bca、cab 、cba“ 不考虑字符串重复,该问题是求所有字符的排列,有A(n, n) = n! 种情况,其中n是字符串长度。 递归思路:先确定字符串(n)第一位上的字符str[0],字符串(n-1)为字符串原创 2016-04-06 13:36:20 · 424 阅读 · 0 评论 -
算法学习【3】字符串相关含KMP算法
面试经常会考察String相关问题,现把相关题目整理如下:1、返回逆序字符串,如,"abc"->"cba",要求空间复杂度为O(1) 思路:首尾字符依次交换public static char[] inverseOrder(char[] str, int st, int fh){ int len = fh-st+1; char temp; for(int i=0;i原创 2016-03-10 17:51:20 · 618 阅读 · 0 评论 -
算法学习【2】字符个数统计
牛客网的华为机试题库有一道题:字符个数统计。 若直接用两个for循环则会发生错误,错误的程序如下:import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.ha原创 2016-02-25 21:33:02 · 1103 阅读 · 0 评论 -
算法学习【8】二叉树相关算法
二叉树相关算法是笔试面试常考内容,需重点掌握。 二叉树节点定义:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }原创 2016-04-26 12:28:07 · 649 阅读 · 0 评论