程序------>算法
一.算法:
1、算法的定义:
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有序序列,并且每条指令表示一个或多个操作。即算法是描述解决问题的方法。(对于给定的问题是可以有多种 算法进行解决的)
2.算法
01:一刀切下式(事后修正)
String b="abcdefg"; //结果a,b,c,d,e,f,g
String result="";
for(int i=0;i<b.length();i++){
result+=","+b.charAt(i);//获取每一个字符
//,a,b,c,d,e,f,g
}
result=result.substring(1);
System.out.println(result);
02.字符串的常用API (假设修正法)
String b="abcdefgabcd"; //求字符串中是否有重复的字符
boolean flag=false; // 假设不重复
for(int i=0;i<b.length();i++){
char c=b.charAt(i);//获取每一个字符
if(b.lastIndexOf(c)!=i){
flag=true; //重复
System.out.println("重复");
break;
}
System.out.println("不重复");
}
03.字符串的常用API (正则表达式)replaceAll()
//在小括号里面的内容我们称之为子组,用$获取子组内容
String a="asasasa 2018-07-16 sasa sasas sasa";
//实现的效果是asasasa 07/16/2018年 sasa sasas sasa
a=a.replaceAll("([0-9]{4})-([0-9]{2})-([0-9]{2})","$2/$3/$1 年");
System.out.print(a);
注:正则表达式常用的两个类
Pattern
01:代表正则表达式本身
02:对我们书写的正则表达式进行预处理
03:提高我们代码的运行效率
Matcher
01:代表正则表达式的计算结果
02:实现了对正则复杂的操作
04.判断某个字符串是否满足我们定义的正则表达式
String a="ABC01234";
a.matches("[A-Z]{1,3}[0-9]{3,5}"); //返回boolean
05.鸡兔同笼
/*鸡兔共50头,脚共120只!
x+y=50;
2x+4y=120;*/ for(int x=0;x<=50;x++){
int y=50-x; //得到兔子的数量
if(2*x+4*y==120){
System.out.println(x);
System.out.println(y);
}
}
06.枚举与剪枝 找零
/*需求:找零50元
现在有的货币是:
10元 5元 5角
100 50 5
求出所有找零方案!*/ int money=500;
for (int a = 0; a <=money/100 ; a++) { //
for (int b = 0; b <=money/50 ; b++) { //
if ((500-(a*100+b*50)<0)) break; //剪枝
int c =(500-(a*100+b*50))/5;//
if (a*100+b*50+c*5==500){
System.out.println("10元钱出现的次数=》"+a+"\t5元钱出现的次数=》"+b+"\t5角钱出现的次数=》"+c);
}
}
}
07.枚举与剪枝 求位数
/*需求: 数字自身平方的尾数=自身 (100W以内)
0 0
1 1
5 25
6 36
25 625*/ for (int a = 0; a <=1000000 ; a++) {
//求a的平方
int num=a*a;
if (num%10==a||num%100==a||num%1000==a||num%10000==a||num%100000==a||num%1000000==a){
System.out.println("数字本身是=》"+a+"数字的平方是=》"+num);
}
}
08.字符串和数字的转换
String str="6789"; //字符串 需要转换成数字 6789
int result=0;
for (int i = 0; i <str.length() ; i++) {
result=result*10+str.charAt(i)-'0';
}
System.out.println(result);
09.任意进制之间的转换
String num="200110102"; // 3进制的数字转换成5进制的
int result=0;
for (int i = 0; i <num.length() ; i++) {
char c=num.charAt(i);
result=result*3+(c-'0');
//result=0 + (50-48) = 2
//result=2*3 + (48-48) = 6
//result=6*3 + (48-48) = 18
//result=18*3 + (49-48) = 55
//result=55*3 + (49-48) = 166
//result=166*3 + (48-48) = 498
//result=498*3 + (49-48) = 1495
//result=1495*3 + (48-48) = 4485
//result=4485*3 + (50-48) = 13457
}
System.out.println(result); //十进制 13457
String str="";
while (true){
if (result==0) break;
str+=result%5;
result=result/5;
}
System.out.println(str);
}
程序------>算法的更多相关文章
- Java程序算法设计视频分享,需要的来
每年都会有人说,IT行业饱和了,根本就找不到工作,其实,我想说的是,不是工作难找,而是你自己不够好! 前几天看到一CEO在微博上吐槽: 前几天招一算法工程师我们给了8万月薪*14+奖金,人家去阿里拿5 ...
- python常用程序算法
一.冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程. 规律: 1.冒泡排序的趟数时固定的:n-1 ...
- 有N个大小不等的自然数(1--N),请将它们由小到大排序。要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
#include<stdio.h> int main() { ]={,,,,,,,,}; int i,tmp; ;i<;i++) { ) { tmp=a[i]; a[i]=a[a[i ...
- FCM算法的matlab程序2
FCM算法的matlab程序2 在“FCM算法的matlab程序”这篇文章中已经用matlab程序对iris数据库进行实现,并求解准确度.下面的程序是另一种方法,是最常用的方法:先初始化聚类中心,在进 ...
- PHP两种基础的算法:冒泡、快速排序法》》》望能够帮助到大家
首先扯个淡@@@@@@@@@ 算法是程序的核心,一个程序的好坏关键是这个程序算法的优劣. 冒泡排序法 原理:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的 ...
- php 冒泡 快速 选择 插入算法 四种基本算法
php四种基础算法:冒泡,选择,插入和快速排序法 来源:PHP100中文网 | 时间:2013-10-29 15:24:57 | 阅读数:120854 [导读] 许多人都说 算法是程序的核心,一个程序 ...
- php 实现冒泡算法排序、快速排序、选择排序,插入排序
许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
- 数据结构(DataStructure)与算法(Algorithm)、STL应用
catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...
- PHP四种基础算法详解
许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
随机推荐
- ( 转 )超级惊艳 10款HTML5动画特效推荐
今天我们要来推荐10款超级惊艳的HTML5动画特效,有一些是基于CSS3和jQuery的,比较实用,特别是前几个HTML5动画,简直酷毙了,现在将它们分享给大家,也许你能用到这些HTML5动画和jQu ...
- /proc详解
内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统. Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件 ...
- json 报错'xxx is not JSON serializable'的处理方法
场景: 报错: 原因: json不能对np.int64或者np.float64等类型进行序列化,可以通过自定义serializer或者直接类型转换来解决. 解决方法: 显式的把 date 转换成 in ...
- mycat 9066管理端口
1.连接mycat 9066管理端口 命令:mysql -uroot -proot -P9066 -h127.0.0.1 -u:用户名 -p:密码 -P:端口 -h:ip地址例:linux路径切换到m ...
- [Bayes] openBUGS: this is not the annoying bugs in programming
Bayesian inference Using Gibbs Sampling 允许用户指定复杂的多层模型,并可使用MCMC算法来估计模型中的未知参数. We use DAGs to specify ...
- PHP实现删除非站内外部链接实例代码
/** * 删除非站内链接 * * @access public * @param string $body 内容 * @param array $allow_urls ...
- .Net Core 部署到Ubuntu 16.04 中的步骤
需要安装的工具 .Net Core Nginx反向代理服务器(相当于Windows下的IIS) Supervisor(进程管理工具) .Net Core安装方法请参阅 官方文档 安装完成后就可以在项目 ...
- D - Brave Game
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻. 今天,大家选择 ...
- php链式操作的实现
);//$db->where("id=1");//$db->where("name=2");//$db->order("id des ...
- Jmeter压力测试工具安装及使用教程
一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...