程序------>算法
一.算法:
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,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
随机推荐
- Java 继承中构造方法的执行顺序问题
在Java中,如果一个类没有任何显式创建的构造器则该类默认会有一个无参构造器:如果显式创建了有参构造器则该类就不再有默认无参构造器. 在Java继承中,构造器并不能被继承,而是被显示或隐式调用. 1. ...
- iLBC
iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729.G.723.1,对丢包进行了特有处理,即使在丢包率 相当高的网络环境下,仍可获得非常清晰的语音效果.
- mysql设置对外访问
报错:Host is not allowed to connect to this MySQL server解决方法 先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方 ...
- [Bayes] Understanding Bayes: Updating priors via the likelihood
From: https://alexanderetz.com/2015/07/25/understanding-bayes-updating-priors-via-the-likelihood/ Re ...
- 关于Kafka Fetch Session的讨论
Kafka在1.1.0版本引入了fetch session的概念,旨在降低“无效”FETCH请求对集群带宽资源的占用.故事的背景是这样的: 众所周知,Kafka的broker和consumer都会定期 ...
- 浅谈webpack4.0 性能优化(转)
前言:在现实项目中,我们可能很少需要从头开始去配置一个webpack 项目,特别是webpack4.0发布以后,零配置启动一个项目成为一种标配.正因为零配置的webpack对项目本身提供的“打包”和“ ...
- 转载->CPU的内部架构和工作原理
CPU的内部架构和工作原理 本片博客转自:http://www.cnblogs.com/onepixel/p/8724526.html 感谢博主分享! 内部架构 CPU 的根本任务就是执行指令,对计 ...
- Failed to resolve: com.android.support:appcompat-v7:27.0.1问题解决
今天,在毫无征兆的情况下AndroidStudio又抽风了,搞了大半天,试了网上众多方案,终于解决了这个问题.咱们一步一步来 第一步:这是最开始的bug Error:Failed to resolve ...
- lsass 病毒手动清除方法
病毒症状进程里面有2个lsass.exe进程,一个是system的,一个是当前用户名的(该进程为病毒).双击D:盘打不开,只能通过右击选择打开来打开.用kaspersky扫描可以扫描出来,并且可以杀掉 ...
- python nose测试框架全面介绍十---用例的跳过
又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...