Java 数组算法列题解析
1.声明一个char类型的数组, 从键盘录入6个字符
【1】遍历输出
【2】排序
【3】把char数组转化成一个逆序的数组
总结:分析问题时,先问自己,需要用到什么?
对于这题,第一步:先写一个main方法;
第二步:需要声明一个数组;
第三步:需要用到Scanner的控制台输入;(列如:String tmp=sc.next();定义一个string类型的tmp(我把它理解成堆内存的地址),把从控制台输入的sc对象依次导入到堆内存当中)
这三步我把它理解成构建算法的基石
(1)在第一问当中,当看到问题是遍历输出时,需要立马想到这题我需要用到for循环;
因为定义的是String类型的数组,所以需要用到.charAt(0);
【1】遍历输出
import java.util.Scanner;
public class Test13{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
char[] arr=new char[6]; for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个字母");
String tmp=sc.next();
arr[i]=tmp.charAt(0);
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
【2】排序
当看到排序时,首先想到冒泡算法,在本题中冒泡算法的使用是:两个for循环的嵌套使用,第一个for循环,控制行;第二个for循环,用于两两比较;
我对他的使用方法的理解是:第一个for循环的范围是(arr.length-1);第二个for循环的范围是(arr.length-1-i);
冒泡排序又是升序,所以需要使用 if 的判断语句,
char temp=0;
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println();
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
【3】把char数组转化成一个逆序的数组
降序输出,
System.out.println();
for(int h=arr.length-1;h>=0;h--){
System.out.print(arr[h]+"\t");
}

2.从键盘输入5句话,将这五句话逆序输出(不需要排序)
运行效果
======================================
大家早上好
明天会更好
北京欢迎你
长城长
太阳出来了
逆序输出
===========================================
太阳出来了
长城长
北京欢迎你
明天会更好
大家早上好
import java.util.Scanner;
public class Test14{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] arr=new String[5];
for(int i=0;i<arr.length;i++){
System.out.print("请输入第"+(i+1)+"句话");
arr[i]=sc.next();
}
for(int j=arr.length-1;j>=0;j--){
System.out.println(arr[j]);
}
}
}
3.有一组数分别为18,25,7,36,13,2,89,63求出最小的值,并将最小的数与最小的数所在的下标输出
//运行效果:
//====================================
//最低积分为:2
//最低积分所在的下标为:5
总结:第一步,看到问题首先需要想到,需要列出这个数组 int[] arr={18,25,7,36,13,2,89,63};
第二步: 找最小值需要用到if的表达式,首先需要赋予数组的一个数值为最小值,然后用这个最小值与数组的每一个元素一 一比较,(需要你在for循环前,对最小值和最小值的索引进行赋值)
public class Test14{
public static void main(String[] args){
int[] arr={18,25,7,36,13,2,89,63};
int min=arr[0];
int a=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]<min){
min=arr[i];
a=i;
}
}
System.out.println("最低积分为:"+min);
System.out.println("最低积分所在的下标为:"+a);
}
}
Java 数组算法列题解析的更多相关文章
- JAVA经典算法40题及解答
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...
- JAVA经典算法40题
1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...
- JAVA经典算法40题(原题+分析)之分析
JAVA经典算法40题(下) [程序1] 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...
- JAVA经典算法50题(转)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1] 题目:古典问题:有一对兔子, ...
- JAVA经典算法40题面向过程
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...
- JAVA经典算法40题(原题+分析)之原题
JAVA经典算法40题(上) [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...
- java经典算法40题-附带解决代码
前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...
- JAVA 数组算法(复制、查找、插入)
一.复制数组算法 //数组复制算法 public class Test{ public static void main(String[] args){ int[] arrA = {100,800,5 ...
- JAVA经典算法40题(供面试所用)
[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数 ...
随机推荐
- list<?>转换成 对应的 class
项目中用到的,list转换成bean.因为查询出来的数据用list 泛型接收,要返回 实体对象.所以需要对应转换. 主要用到的技术:反射. 上代码: public static <T> L ...
- win7 iis7 ftp配置
1.安装ftp服务器 开始菜单找到控制面板>在左侧找到打开或关闭windows功能点击 弹出如下对话框, 在弹出的对话框中找到Internet信息服务,如下 然后如上图所示,选中ftp服务器复选 ...
- 移动开发iOS&Android对比学习--异步处理
在移动开发里很多时候需要用到异步处理.Android的主线程如果等待超过一定时间的时候直接出现ANR(对不熟悉Android的朋友这里需要解释一下什么叫ANR.ANR就是Application Not ...
- 编写高质量代码改善C#程序的157个建议——建议144:一个方法只做一件事
建议144:一个方法只做一件事 “单一职责原则”(SRP)要求每一个类型只负责一件事情.我们将此概念扩展到方法上,就变成了:一个方法只做一件事. 回顾上一建议的代码,LocalInit和RemoteI ...
- C#中遇到的方法总结
1.Select(string filterExpression, string sort) // 获取按照指定的排序顺序且与筛选条件相匹配的所有 System.Data.DataRow 对象的数组 ...
- Gym - 100971J ——DFS
Statements Vitaly works at the warehouse. The warehouse can be represented as a grid of n × mcells, ...
- 51nod1298圆与三角形——(二分法)
1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同 ...
- Python相关基础
1>变量: 2>条件判断与缩进: sex = raw_input("Please input your gender:") if sex == "girl&q ...
- Windows store app[Part 4]:深入WinRT的异步机制
接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...
- 使用pycharm专业版创建虚拟环境
Location为工程地址 D:\My_python 第二个Location为 虚拟环境放在这个工程下 Base interpreter:基于那个解释器来创建虚拟环境 Create后进入到目录查看下