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 数组算法列题解析的更多相关文章

  1. JAVA经典算法40题及解答

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  2. JAVA经典算法40题

    1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...

  3. JAVA经典算法40题(原题+分析)之分析

    JAVA经典算法40题(下) [程序1]   有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:  ...

  4. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  5. JAVA经典算法40题面向过程

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  6. JAVA经典算法40题(原题+分析)之原题

    JAVA经典算法40题(上) [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...

  7. java经典算法40题-附带解决代码

    前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...

  8. JAVA 数组算法(复制、查找、插入)

    一.复制数组算法 //数组复制算法 public class Test{ public static void main(String[] args){ int[] arrA = {100,800,5 ...

  9. JAVA经典算法40题(供面试所用)

    [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:   兔子的规律为数 ...

随机推荐

  1. CodeForces 289A Polo the Penguin and Segments (水题)

    题意:给你 n 段区间,而且还是不相交的,然后你只能向左扩展左端点,或者向右扩展右端点,然后扩展最少的步数让整数总数能够整除 k. 析:很简单么,只要在记录算一下数量,然后再算出 k 的倍数差多少就行 ...

  2. [Lua快速了解一下]Lua的函数

    -recurrsive function fib(n) end ) + fib(n - ) end -closure 示例一 function newCounter() return function ...

  3. zookeeper学习及安装

    HBase提示已创建表,但是list查询时,却显示表不存在. https://blog.csdn.net/liu16659/article/details/80216085 http://archiv ...

  4. 从swing分发线程机制上理解多线程[转载]

    本文参考了 http://space.itpub.net/13685345/viewspace-374940,原文作者:javagui 在多线程编程当中,总会提到图形编程,比如java中的swing, ...

  5. centos 7防火情配置

    查看版本 firewall-cmd --version 2 查看指定端口是否开放 firewall-cmd --query-port=端口号/tcp 3 开放指定端口(--permanent表示永久, ...

  6. 基于SSH的网上购物商城系统-JavaWeb项目-有源码

    开发工具:Myeclipse/Eclipse + MySQL + Tomcat 项目简介: 基于WEB的网上购物系统主要功能包括:前台用户登录退出.注册.在线购物.修改个人信息.后台商品管理等等.本系 ...

  7. Replication--分区+复制

    1>配置订阅表使用分区,在发布的项目属性中设置"复制分区方案"和"复制索引分区方案"为true,然后初始化订阅 2>在发布数据库上修改发布属性 -- ...

  8. 学习做爬虫-vs2017

    最近新装了vs2017,安装过程发生了很大的变化,操作变的更加容易了. 下载vs安装程序进行安装.更新界面如图所示,我选择了安装免费个人版(这个是已安装的更新界面,和安装界面差不多) 如图所示,这样的 ...

  9. 本地连接腾讯云Mysql失败问题

    腾讯云主机中MySQL无法远程连接的解决办法 在远程主机上,我开启了 mysql服务,用 phpmyadmin 可以打开,比如说用户名为 root,密码为 123456.不过用 Mysql 客户端远程 ...

  10. Android 开发怎样做代码加密或混淆?

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防 ...