一.算法:

  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);
}

程序------>算法的更多相关文章

  1. Java程序算法设计视频分享,需要的来

    每年都会有人说,IT行业饱和了,根本就找不到工作,其实,我想说的是,不是工作难找,而是你自己不够好! 前几天看到一CEO在微博上吐槽: 前几天招一算法工程师我们给了8万月薪*14+奖金,人家去阿里拿5 ...

  2. python常用程序算法

    一.冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程. 规律: 1.冒泡排序的趟数时固定的:n-1 ...

  3. 有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 ...

  4. FCM算法的matlab程序2

    FCM算法的matlab程序2 在“FCM算法的matlab程序”这篇文章中已经用matlab程序对iris数据库进行实现,并求解准确度.下面的程序是另一种方法,是最常用的方法:先初始化聚类中心,在进 ...

  5. PHP两种基础的算法:冒泡、快速排序法》》》望能够帮助到大家

    首先扯个淡@@@@@@@@@ 算法是程序的核心,一个程序的好坏关键是这个程序算法的优劣. 冒泡排序法 原理:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的 ...

  6. php 冒泡 快速 选择 插入算法 四种基本算法

    php四种基础算法:冒泡,选择,插入和快速排序法 来源:PHP100中文网 | 时间:2013-10-29 15:24:57 | 阅读数:120854 [导读] 许多人都说 算法是程序的核心,一个程序 ...

  7. php 实现冒泡算法排序、快速排序、选择排序,插入排序

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...

  8. 数据结构(DataStructure)与算法(Algorithm)、STL应用

    catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...

  9. PHP四种基础算法详解

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...

随机推荐

  1. X-Frame-Options 配置

    最近在修改ASP老网站,使用是iframe框架部署上去后出现“此内容不能显示在一个框架中”错误 以下错误解决方案是需要配置:X-Frame-Options X-Frame-Options: 他的值有三 ...

  2. 如何查看WAS生成的Snap.***.trc文件

    WAS发生heapdump时随之还产生了javacore和Snap.***.trc文件 Snap.***.trc文件无法直接查看,需要对其进行格式化,就算用文本编辑器打开看见的也是有很多乱码 跟踪格式 ...

  3. 记一个神奇的WAS问题:sibuswsgw-sibuswsgw_console.jar invalid LOC header (bad signature) 分类: WebSphere 2015-08-06 23:21 9人阅读 评论(0) 收藏

    今天晚上,出现了一个神奇的WAS问题,详细问题异常信息如下: [15-8-6 22:13:29:146 CST] 00000013 ApplicationMg A WSVR0203I: 应用程序:is ...

  4. 面向切面编程AOP,一些通用装饰器

    1.一些装饰器,可以减少重复编写.比较常用的. 用的时候函数上面加上装饰器就可以.这是一些装饰器,加在函数或者方法上,减少了很多重复代码. 除此之外工作中也用一些mixin类大幅减少代码. impor ...

  5. 用addOnGlobalLayoutListener获取View的宽高

    首先,我们在onCreate方法里调用getHeight()和 getWidth()是不能正确获取View的宽高的,因为onCreate方法执行完了,我们定义的控件才会被onMeasure()度量,所 ...

  6. fs项目---->async/await的学习(一)

    2018-07-11号,我来到了fs项目组担任后端开发的角色.这是我来thoughtworks以来首个的正式项目,不管是在技术还是在敏捷的实践中都是受益匪浅.来感受tw特殊的文化的同时,我希望自己能够 ...

  7. 关于JSON call 的一个小问题

    如图当我们在做Json call 的时候,一定要切记,建立的model 一定要与JSON 字符串严格的一一对应,否者会解析不出来

  8. java注解和反射学习

    spring框架很多地方都应用了注解,如@controller,所以要学会自定义注解及注解处理器. Class<?> cl=Class.froName(className) //通过类名加 ...

  9. STL之map学习实例

    ``` #include<iostream> #include<algorithm> #include<vector> #include<map> #i ...

  10. 【Vue】---编写Vue插件流程---【巷子】

    一.在Vue中编写插件流程 1.创建组件 components/message.vue <template> <div class="message" v-if= ...