#算法的乐趣

算法笔记_227:填写乘法算式(Java)

/目录1问题描述2解决方案观察下面的算式:**×**=***它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。比如:13x1...

算法笔记_228:信用卡号校验(Java)

/目录1问题描述2解决方案当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘...

算法笔记_229:有理数的循环节(Java)

/目录1问题描述2解决方案1/7=0.142857142...是个无限循环小数。任何有理数都可以表示为无限循环小数的形式。本题目要求即是:给出一个数字的循环小数表示法。例如:输入:1,5则输出:0.2输入:1,7则输出:0.[142857]输入:7,6则输出:1.1[6]用户输入的格式是:整数,整数每个整数范围均为:1...

算法笔记_230:运动员分组(Java)

/目录1问题描述2解决方案有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。例如:N=8时,分成1组即可。N=9时,分成2组:一组5人,一组4人。N=25时,分4组:7、6、6、6。请编程计算分组数字。要求从标准输入获得一个正整数(1~100之间,不必考虑输入错误的情况),表...

算法笔记_231:网格中移动字母(Java)

/目录1问题描述2解决方案2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如图【1.jpg】所示。和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:ABDECABCDE为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:AB*D...

算法笔记_232:提取拼音首字母(Java)

/目录1问题描述2解决方案在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。比如,在铁路售票软件中,输入:“bj”就可以定位到“北京”。怎样在自己的软件中实现这个功能呢?问题的关键在于:对每个汉字必须能计算出它的拼音首字母。GB2312汉字编码方式中,一级汉字的3...

算法笔记_233:二阶魔方旋转(Java)

/目录1问题描述2解决方案魔方可以对它的6个面自由旋转。我们来操作一个2阶魔方(如图1所示):为了描述方便,我们为它建立了坐标系。各个面的初始状态如下:x轴正向:绿x轴反向:蓝y轴正向:红y轴反向:橙z轴正向:白z轴反向:黄假设我们规定,只能对该魔方进行3种操作。分别标记为:x表示在x轴正向做顺时针旋转y表示在y轴正向...

算法可视化

visualisingdatastructuresandalgorithmsthroughanimation   https://github.com/algorithm-visualizer/algorithm-visualizerInteractiveOnlinePlatformtha...
代码星球 ·2021-02-08

大整数乘法——分治算法的时间复杂度

  1.1原始的低效算法    我们将n位(为方便讨论简化问题,我们假设n是2的幂)十进制整数(二进制也可以)X、Y都分为2段,每段的长度是n/2位。   如果现在直接用递归或分治进行编程,其算法复杂度为:   其中:T(n)代表规模为n的问题,系数4表示问题缩小到T(n/2)时,包含四次乘法(上式...

C语言的经典排序算法源码

1、插入排序:插入法是一种比较直观的排序方法。它首先把数组头两个元素排好序,再依次把后面的元素插入适当的位置。把数组元素插完也就完成了排序。代码如下:#include<stdio.h>voidmain(){inta[10];inti,j,k;printf("请输入10个数字!空格隔开");for(i=0;i...

常用加密算法的Java实现总结

 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA    Java中为安全框架提供类和接口。JDK安全API是Java编程语言的核心API,位于java.security包(及其子包),以及sun.securityAPI...

规则用来判断对象;算法是考虑如何排序

通过语句:Iteratorit=c.iterator();得到一个迭代器,将集合中所有元素顺序排列。然后可以通过interator方法进行遍历,迭代器有一个游标(指针)指向首位置。Interator有hasNext(),用于判断元素右边是否还有数据,返回True说明有。然后就可以调用next动作。Next()会将游标移...

先优化数据结构和算法,再优化执行代码

先优化数据结构和算法,再优化执行代码。 1#include<iostream>2#include<deque>34usingnamespacestd;5typedefdeque<int>INTDEQUE;67//从前向后显示deque队列的全部元素8voidput_dequ...

C++实现排序算法

稳定性:快速希尔选择堆排序不稳定时间复杂度:平均情况下,快速、希尔、归并和堆排序的时间复杂度均为O(nlog2(n)),其他都是O(n^2)。最坏情况下,快排的时间复杂度为O(n^2)1#include<iostream>2#include<stdlib.h>3#include<time....
代码星球 ·2021-02-07

文本比较算法Ⅱ——Needleman/Wunsch算法的C++实现【求最长公共子串(不需要连续)】

算法见:http://www.cnblogs.com/grenet/archive/2010/06/03/1750454.html 求最长公共子串(不需要连续)1#include<stdio.h>2#include<string>3#defineN100456intmax(inta,i...
首页上一页...2425262728...下一页尾页