程序------>算法
一.算法:
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,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
随机推荐
- 对TextFile格式文件的lzo压缩建立index索引
转自:http://blog.csdn.net/yangbutao/article/details/8519572 hadoop中可以对文件进行压缩,可以采用gzip.lzo.snappy等压缩算法. ...
- Centos 7 查看电池电量信息
而不像 ubuntu 在 /proc/acpi/battery/BAT 中. 其中 capacity 参数就是当前电脑的剩余电量的百分比信息了
- SpringSecurity兑现多登录成功页面和登录成功返回被拦截界面
SpringSecurity实现多登录成功页面和登录成功返回被拦截界面 使用SrpingSceurity作为认证和授权的安全框架可以省下很多基础工作. 具体可以参考SpringSecurity,这里不 ...
- html5游戏开发-简单tiger机
http://blog.csdn.net/lufy_legend/article/details/7021965
- 8. Oracle通过rman进行克隆
一. 安装规划 IP ROLE 192.168.1.235 克隆对象 192.168.1.221 克隆库 二. 备库创建相应的dump文件夹 # 在主库查询对应的dump目录 select name, ...
- pythonCharm 破解
操作步骤和IDEA是一样的 只是jar 包不一样 //激活拷贝-javaagent:E:\PythonCharm\PyCharm Community Edition 2017.3.4\bin\Jetb ...
- linux下WEB服务器安装、配置VSFTP
转载 http://www.oicto.com/centos-vsftp/?tdsourcetag=s_pcqq_aiomsg linux下WEB服务器安装.配置VSFTP 由 admin · 发布 ...
- Xcode连接TFS Git用户名和密码不正确解决方案
团队要将原来搭建的Git服务全部迁移到TFS的Git上统一管理,迁移的过程非常顺利.当要用Xcode或者SourceTree连接TFS Git(我们的TFS身份认证是基于Windows的,使用HTTP ...
- win10 开启蓝 由于其配置信息(注册表中的)不完整或已损坏
在管理员命令提示符下键入以下命令: Dism /Online /Cleanup-Image /ScanHealth 这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致情况. Dism ...
- Windows 10 Install rabbitmq-server-3.6.9
rabbitmq下载 http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9.exe otp插件下载 ...