7.20(修改选择排序法)在7.11节中,使用了选择排序法对数组排序。改写7.11节程序,重复地在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换

  • 题目
    • 题目描述
    • 破题
  • 代码
    • 运行实例

题目

题目描述

7.20(修改选择排序法)在7.11节中,使用了选择排序法对数组排序。改写7.11节程序,重复地在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换
编写一个测试程序,读取10个double型的数字,调用该方法,并显示排好序的数字

破题

  1. 主方法:声明一个int型对象,赋值为10(作为数组长度)
  2. 主方法:声明一个double型数组
  3. 主方法:获取输入的10个double值,并传值给数组
  4. 主方法:调用自定义选择排序法(方法名:ss),接收返回的double型数组
  5. 主方法:将刚刚接收到的数组输出
  6. ss方法:求传入数组的长度
  7. ss方法:声明一个double型对象,用于存储交换值
  8. ss方法:采用双层循环进行排序,最内层进行比较大小,并进行值的交换
  9. ss方法:返回排序好的数组

代码

import java.util.Arrays;
import java.util.Scanner;public class Test7_20 {public static void main(String[] args) {//1. 主方法:声明一个int型对象,赋值为10(作为数组长度)int length = 10;//2. 主方法:声明一个double型数组double[] list = new double[length];//3. 主方法:获取输入的10个double值,并传值给数组Scanner input = new Scanner(System.in);System.out.print("请输入10个double值:");for (int i = 0 ; i < length ; i++){list[i] = input.nextDouble();}//4. 主方法:调用自定义选择排序法(方法名:ss),接收返回的double型数组list = ss(list);//5. 主方法:将刚刚接收到的数组输出System.out.print(Arrays.toString(list));}//ss方法:选择排序的自定义方法public static double[] ss(double[] list){//6. ss方法:求传入数组的长度int length = list.length;//7. ss方法:声明2个对象,用于存储交换值double temp = 0;int temp_index = 0;//8. ss方法:采用双层循环进行排序,最内层进行比较大小,并进行值的交换for (int i = length - 1 ; i > 0 ; i--){//找下标0到i的最大值下标temp_index = max(list, i);//比较list[temp_index]和list[i]的大小,如果大于则交换值if (list[temp_index] > list[i]){temp = list[temp_index];list[temp_index] = list[i];list[i] = temp;}}//9. ss方法:返回排序好的数组return list;}public static int max(double[] list, int i){//找传入的double数组从下标0到下标i的最大值int index = 0;double max = 0;for (int a = 0 ; a < i ; a++){if (max < list[a]){max = list[a];index = a;}}return index;}
}

运行实例

请输入10个double值:10 9 8 7 6 5 4 3 2 1
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]

Java黑皮书课后题第7章:*7.20(修改选择排序法)在7.11节中,使用了选择排序法对数组排序。改写7.11节程序,重复地在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换相关推荐

  1. Java黑皮书课后题第5章:*5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储。编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式,下面是运行示例

    5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储.编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式 题目 题目概述 运行示例 资料与破题 原码反码 ...

  2. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序

    *3.17(游戏:剪刀.石头.布)编写可以玩流行的剪刀-石头-布游戏的程序 题目 题目概述 运行示例 ***特别注意*** 破题 代码 题目 题目概述 *3.17(游戏:剪刀.石头.布)编写可以玩流行 ...

  3. Java黑皮书课后题第4章:4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积

    4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积 题目 题目概述 运行示例 破题 代码 题目 题目概述 4.4(几何:六边形面 ...

  4. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  5. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  6. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  7. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  8. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  9. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  10. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

最新文章

  1. vue+file-saver+xlsx导出table为excel
  2. Qt 编译出错 Could not create directory
  3. java 容器_我也来聊聊,JAVA容器与迭代器
  4. JQ css3 导航栏到底部上移
  5. 怎么更换WIN7欢迎界面的背景图?
  6. IOCP线程池的开发-(1)
  7. Gui+jdbc+mysql实现图书管理
  8. Could not create the view: An unexpected exception was thrown.
  9. 视频会议专线部署不会?别急,我教你
  10. oracle 基本dos命令,Oracle 常用 Dos命令
  11. linux系统镜像怎么安装,linux系统安装,怎样安装linux系统制作方法
  12. 【推荐】前沿智能视频分析深度学习算法框架-NVIDIA DEEPSTREAM5.0 【原理介绍】
  13. 计算机维修兴趣小组,计算机兴趣小组章程
  14. 智能制造与供应链管理趋势
  15. 华盛顿邮报专访苹果CEO库克:带领苹果是个孤独的工作
  16. activiti实现请假流程
  17. PPT文档翻译软件怎么用?如何翻译整篇PPT文档
  18. linux常用命令整理-02-服务器-系统-内存-磁盘-优化
  19. python将所有excel文档合并
  20. 塞尔希奥·阿奎罗和 The Sandbox 携手合作,激活元宇宙足球迷!

热门文章

  1. Java中expecial,RxJava 学习笔记 (一)
  2. php日志导出oracle,一个php导出oracle库的php代码
  3. shell 中常用到的基础命令
  4. P1650 田忌赛马(贪心)
  5. 高中计算机基础知识,高中计算机会考基本知识点
  6. php怎么实现md5加密,php如何进行md5加密
  7. 差分放大电路差模共模公式_选择正确的放大器
  8. Openstack迁移DDH最佳实践
  9. 错误码如何设计才合理?
  10. 实例比较虚幻引擎4与光线追踪渲染