9.5 排序:   有一种排序的方法,非常好理解,详见本题的步骤,先找出最大值和最小值,把最小值打印出来后,把它存在另一个数组b当中,再删除此最小值,之后再来一次找出最小值,打印出最小值以后,再把它存在另一个数组b当中,再删除此最小值,这样循环往复,直到做完,你就会发觉,你已经把排了序数放在b数组当中了,而这里的彻底删除最小值的方法就是用比最大值还大一的数来取代最小值。(自己想想为什么?)参考后面的答案你会发觉,按照下面的四步,你已经把一个数组排序了。 i)make a method called getMin to find the minimal value of the array. ii)make a method called getMax to find the maximum value of the array. iii) replace the minimal value with the maximum+1. iiii) sort an array.

public class Test {
    static int minPosition=0;//用这个全局变量来记录最小数的位置索引,
    public static void main(String[] args) {
        int[] a = {6, 12, 7, 23, 4};
        int max = getMax(a);
        int[] b = new int[a.length];
        for (int j = 0; j < a.length; j++) {
            int min = getMin(a); 
 /*把a数组当中最小的值,马克-to-win给替换成max+1,这样就相当于把原来的最小值从这个数组当中彻底清除掉了。整个循环做完,a数组就彻底废了。*/
            a[minPosition] = max + 1; 
            minPosition=0;//把minPosition重置一下, 因为最小的位置已经不是这了。
            b[j] = min;//用此方法a数组当中的数就一个一个从小到大捣到b数组当中了
        }
        for (int j = 0; j < a.length; j++) System.out.println(b[j]);
    }
    static int getMax(int[] a) { 
       int max=a[0];
       for (int i = 1; i < a.length ; i++) {
           if(max<a[i])
           {
               max=a[i];
           }
       }        
       return max;
    }
    static int getMin(int[] a) { 
        int min=a[0];
        for (int i = 1; i < a.length ; i++) {
            if(min>a[i])
            {
                min=a[i];
                minPosition=i;//用这个全局变量来记录最小数的位置索引,
            }
        }        
        return min;
    }

}

更多请见:https://blog.csdn.net/qq_44639795/article/details/103142934

java中的排序除了冒泡以来, 再给出一种方法, 举例说明的更多相关文章

  1. Java中获取项目根路径和类加载路径的7种方法

    引言 在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法. ...

  2. java中获取类加载路径和项目根路径的5种方法

    import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { publi ...

  3. Java中的排序算法(2)

    Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...

  4. Comparable与Comparator,java中的排序与比较

    1:比较和排序的概念 比较:两个实体类之间按>,=,<进行比较. 排序:在集合类中,对集合类中的实体进行排序.排序基于的算法基于实体类提供的比较函数. 基本型别都提供了默认的比较算法,如s ...

  5. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

    转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录 ...

  6. JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

    请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ...

  7. 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  8. VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法

    原文:VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/det ...

  9. Shell脚本中引用、调用另一个脚本文件的2种方法

    Shell脚本中引用.调用另一个脚本文件的2种方法 http://www.jb51.net/article/67903.htm

随机推荐

  1. linux Wireshark图解TCP三次握手与四次挥手

    Linux Wireshark图解TCP三次握手与四次挥手 原文章链接:Wireshark图解TCP三次握手与四次挥手 文章内容丰富 值得学习

  2. layui 表单的使用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. tp5 单文件上传接口

    路由: Route::post('upload','task/task/upload'); 控制器代码: //文件上传接口 public function upload() { $file = req ...

  4. 什么是SaaS?

    SaaS的定义 SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务. SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际 ...

  5. 面向服务开发(SOA)

    面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...

  6. emu8086实现两位数加法运算

    题目说明:给出一个公式,例如 "35 + 28 = ",输出计算结果 一.准备材料 DOS功能调用表:https://blog.csdn.net/mybelief321/artic ...

  7. dotnet 委托的实现解析(2)开放委托和封闭委托 (Open Delegates vs. Closed Delegates)

    前言 这是个人对委托的理解系列第二篇,部分翻译自 Open Delegates vs. Closed Delegates – SLaks.Blog,好像还没人翻译过,加上部分个人理解.希望能对大家理解 ...

  8. [JS基础] 带你深入了解JS原型

    简介 下面这张图大家应该很很熟悉了,各位大佬讲原型及原型链的时候是大部分都会用到下面这张图片的 我想以自己的方式来讲述一遍,一是帮助我自己更好的复习,二是希望能够帮助到想要复习或者学习原型的同学 在讲 ...

  9. 女朋友问我深浅copy到底是什么?

    深浅拷贝 列表存放值的时候,是先申请一块内存空间,存放索引和内存地址的对应关系,其实通俗的来说列表内不存真正的值,是一种间接存放的对应关系: 列表内存不可变类型的数据 就比如说,如果现在将L列表索引0 ...

  10. java-关于java

    JavaSE(标准版) JavaME(嵌入式)(淘汰) JavaEE(E企业级开发) JavaSE是基础 API端口 JDK Java开发工具 JRE Java运行时环境 JVM 虚拟机 可以在软件和 ...