算法
胖纸不争
一个热爱探索的愣头青。
展开
-
[C]将一个十进制数的二进制反转并输出
描述以下提供三种方式(第三种偶然想到的, 哈哈哈, 还挺简洁的)第一种方式 这个解法比较常规, 思路是初始化一个数组(默认值为0),然后将每一位取出来, 替换数组中相应的值, 因为取二进制的时候是从右往左取, 并且存入数组的时候是从左往右存, 那么得到的数组直接就是逆序后的序列.void reverse_bits(unsigned int value){ i...原创 2019-11-18 19:39:03 · 1731 阅读 · 0 评论 -
几种常见的排序方法(1)
插入排序: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素原创 2018-02-06 14:13:56 · 322 阅读 · 0 评论 -
[Java]二分搜索(二分查找)
对数组元素进行逐个查找显然是费时费力的工作, 我们可以使用一些方法快速地搜索出数组中元素的指定位置.接下来我们介绍一种方法--二分搜索法: 二分搜索法充分利用了元素间的次序关系.基本思想:将n元素分成个数大致相同的凉拌,取arr[n/2]与欲查找的x做比较,如果x = arr[n/2]则找到x, 算法终止. 如果x<arr[n/2]则只要在数组arr的左半部继续搜索x(这里假设数组元素呈升序...原创 2018-02-06 16:55:55 · 307 阅读 · 0 评论 -
[Java]去掉数组中重复的元素
提供两种思路解决去掉重复的数字: 1)添加一个数组,但是长度无法确定,记录没有重复的值 2)添加一个数组,用于记录原数组中存在的主,再添加一个数组,可以确定数组的长度,用于存放原数组的值.public class TextDelRepeat { /** * 去掉数组中重复的数字 * @param src * @return */ public static int[] chan...原创 2018-02-06 17:12:30 · 3196 阅读 · 0 评论 -
[Java]矩阵的加减和转置
在数学上, 矩阵是由方程组的系数及常数所构成的方阵.用在解析性方程组上既方便又直观.生活中通过矩阵多因素探索解决问题.要点: 1.使用二维数组表示矩阵 2.对矩阵的操作前,需要进行合法性验证,判断他们是否能进行运算/*** * 矩阵的加减和转置 * @author Power * */public class TextMatrix { //矩阵数据 private dou...原创 2018-02-25 21:09:12 · 2930 阅读 · 0 评论 -
[LintCode]尾部的零
尾部的零描述设计一个算法,计算出n阶乘中尾部零的个数您在真实的面试中是否遇到过这个题?是题目纠错样例11! = 39916800,因此应该返回 2挑战O(logN)的时间复杂度之前这个题目..emm...我按照我的第一想法写的, (求出阶乘, 再看有多少零)但是测试数据里竟然用105!这种疯狂的数字=.=然后果不其然, 程序爆了, 然后灵光一现...原创 2018-09-28 22:32:47 · 820 阅读 · 2 评论 -
[LintCode]统计数字
描述计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。样例输入:k = 1, n = 12输出:5解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出现了 5 次 (1, 10, 11, 12)(注意11中有两个1)。拿到题目的首先思路是将拿到的数字拆分, 那么将数字拆分有两...原创 2019-05-01 23:33:36 · 181 阅读 · 0 评论