尚硅谷_宋红康_Java中数组结构及经典排序算法解析
- 格式:ppt
- 大小:2.11 MB
- 文档页数:38
java数组排序方法Java数组排序方法在Java编程中,数组是一种非常常见的数据结构,而排序是对数组中元素进行重新排列以达到某种有序状态的常用操作。
Java提供了多种排序算法和方法,本文将介绍一些常用的Java数组排序方法。
1. 冒泡排序法冒泡排序是一种简单直观的排序算法,其基本思想是通过相邻元素的比较和交换来实现排序。
具体实现过程如下:- 从数组的第一个元素开始,比较相邻的两个元素,如果顺序不正确,则交换它们的位置。
- 继续比较下一个相邻元素,直到最后一个元素。
此时,最大的元素已经排在了最后的位置。
- 重复以上步骤,直到所有元素都排好序。
2. 快速排序法快速排序是一种高效的排序算法,其基本思想是通过递归地将数组分成较小和较大的两个子数组,再分别对两个子数组进行排序,最终将整个数组排序。
具体实现过程如下:- 选择一个基准元素,将数组分成两部分,其中一部分的元素都小于基准元素,另一部分的元素都大于基准元素。
- 对两个子数组递归地进行快速排序。
- 将两个排好序的子数组合并起来,即可得到最终的排序结果。
3. 插入排序法插入排序是一种简单直观的排序算法,其基本思想是将数组分成已排序和未排序两部分,每次从未排序部分取出一个元素,并将其插入到已排序部分的正确位置。
具体实现过程如下:- 从数组的第二个元素开始,将其与前面的已排序部分逐个比较,找到合适的位置插入。
- 继续取出下一个未排序元素,重复以上步骤,直到所有元素都插入到已排序部分。
4. 选择排序法选择排序是一种简单直观的排序算法,其基本思想是从数组中选择最小的元素,将其与数组的第一个元素交换位置,然后从剩余的未排序部分选择最小的元素,将其与数组的第二个元素交换位置,依此类推。
具体实现过程如下:- 从数组的第一个元素开始,依次遍历数组中的每个元素。
- 在剩余的未排序部分中选择最小的元素,将其与当前元素交换位置。
- 重复以上步骤,直到所有元素都排好序。
5. 归并排序法归并排序是一种稳定的排序算法,其基本思想是将数组递归地分成较小的子数组,再将子数组归并成一个有序的大数组。
java中数组排序方法Java中数组排序方法在Java中,数组是一种非常常见的数据结构,用于存储一组相同类型的元素。
在实际的开发中,我们经常需要对数组进行排序,以便更方便地进行查找、比较和统计等操作。
Java提供了多种数组排序方法,本文将详细介绍其中的几种常用方法。
1. 冒泡排序冒泡排序是一种简单直观的排序方法,它重复地比较相邻的元素,如果顺序不对则交换它们,直到整个数组有序为止。
冒泡排序的时间复杂度为O(n^2)。
2. 选择排序选择排序是一种简单但低效的排序方法,它将数组分为已排序和未排序两部分,每次从未排序部分选择最小的元素放到已排序部分的末尾。
选择排序的时间复杂度也为O(n^2)。
3. 插入排序插入排序是一种稳定的排序方法,它将数组分为已排序和未排序两部分,每次从未排序部分选择一个元素插入到已排序部分的适当位置。
插入排序的时间复杂度为O(n^2)。
4. 快速排序快速排序是一种高效的排序方法,它通过选择一个基准元素将数组划分为两个子数组,然后递归地对子数组进行排序。
快速排序的平均时间复杂度为O(nlogn)。
5. 归并排序归并排序是一种稳定的排序方法,它将数组递归地划分为两个子数组,然后将两个有序子数组合并为一个有序数组。
归并排序的时间复杂度为O(nlogn)。
6. 堆排序堆排序是一种高效的排序方法,它利用二叉堆的性质进行排序。
堆排序的时间复杂度为O(nlogn)。
除了以上几种常用的排序方法,Java还提供了Arrays类中的sort 方法用于对数组进行排序。
这个方法使用了优化的快速排序算法,并且适用于所有的原始数据类型和对象类型。
Arrays.sort方法的时间复杂度为O(nlogn)。
对于自定义类型的数组,我们可以实现Comparable接口并重写compareTo方法来定义自己的排序规则。
然后使用Arrays.sort方法进行排序。
除了使用Java提供的排序方法,我们还可以使用其他的排序算法,如希尔排序、计数排序、桶排序等。
java常用算法和数据结构Java是一种面向对象的编程语言,它具有丰富的算法库和数据结构库,为开发人员提供了许多常用的算法和数据结构。
下面将介绍一些Java常用的算法和数据结构。
1.排序算法-冒泡排序(Bubble Sort):比较相邻的两个元素,如果顺序错误则交换位置,重复该过程直到整个序列有序。
-插入排序(Insertion Sort):将数组分为已排序和未排序两部分,每次从未排序部分取出一个元素,插入到已排序部分合适的位置。
-选择排序(Selection Sort):每次从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾。
-快速排序(Quick Sort):选择一个基准元素,将数组分为两部分,小于基准的放左边,大于基准的放右边,递归地对左右两部分进行快速排序。
-归并排序(Merge Sort):将数组分为两部分,分别对每个子数组进行排序,然后合并两个有序子数组。
2.搜索算法-二分查找(Binary Search):对有序数组进行查找,每次将查找范围缩小一半。
-广度优先搜索(BFS):以树或图的形式搜索,从根节点开始,逐层扩展搜索范围,直到找到目标节点。
-深度优先搜索(DFS):以树或图的形式搜索,从根节点开始,逐个访问节点的所有邻居节点,直到找到目标节点或搜索完所有节点。
3.数据结构-数组(Array):一组按顺序存储的相同类型元素的集合,通过索引访问元素,可以快速访问元素,但插入和删除元素较慢。
-链表(Linked List):一组通过指针连接的节点存储的元素的集合,支持灵活的插入和删除操作,但访问元素较慢。
-栈(Stack):一种特殊的线性数据结构,遵循先进后出(LIFO)原则,只能在栈顶进行插入和删除操作。
-队列(Queue):一种特殊的线性数据结构,遵循先进先出(FIFO)原则,在队尾插入元素,队头删除元素。
-堆(Heap):一种特殊的树形数据结构,可以快速找到最小(或最大)元素,常用于实现优先队列。
—————————————————————————————题目:Java 之23种设计模式解析一、设计模式概述总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
具体如下:其中创建型有:一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
四、Builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
五、Prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
行为型有:六、Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
七、Observer,观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。
八、Template Method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
九、Command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
java-数组排序算法1.数组排序算法-冒泡排序算法作⽤:可以对整数数组中的元素进⾏排序,与Arrays.sort⽅法的作⽤⼀样,唯⼀的区别是sort⽅法可以对任意的类型数组进⾏排序。
例⼦:public class P_1 {public static void main(String args[]) {int[] a = new int[] {5,2,6,7,3,9};P_1 p = new P_1();p.mysort(a);p.showarray(a);}public void mysort(int[] a) {for(int i=1;i<a.length;i++) { //⽐较的次数(25次)for(int j=0;j<a.length-1;j++) { //两个数进⾏⽐较,⼤的数往后移。
if(a[j]>a[j+1]) {int temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}}public void showarray(int[] a) {for(int i=0;i<a.length;i++) {System.out.println(a[i]);}}}2.直接选择排序作⽤:直接选择排序的作⽤跟冒泡排序⼀样,是对数组元素进⾏排序,优势在于直接选择排序算法⽐较的次数⽐冒泡排序算法少。
例⼦:public class P_1 {public static void main(String args[]) {int[] a = new int[] {5,2,6,7,3,9};P_1 p = new P_1();p.mysort(a);p.showarray(a);}public void mysort(int[] a) {int sum = 0;int index;for(int i=1;i<a.length;i++) { //⽐较的次数index = 0;for(int j=1;j<=a.length - i;j++) { //从数组第⼀个元素开始⽐较,最⼤的数移到最后,赋值给a[index]。
java中让数组从大到小排序的方法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!Java中让数组从大到小排序的方法在Java中,对数组进行排序是非常常见的操作。
尚硅⾕宋红康Java基础教程2019版day00_编程⼊门_01-尚硅⾕-Java语⾔基础-资料⽂件结构1day00_编程⼊门_02-尚硅⾕-Java语⾔基础-资料⽂件结构2day00_编程⼊门_03-尚硅⾕-Java语⾔基础-⼊门概述day00_编程⼊门_04-尚硅⾕-Java语⾔基础-冯诺依曼体系结构day00_编程⼊门_05-尚硅⾕-Java语⾔基础-CPU和IT⾏业三⼤定律day00_编程⼊门_06-尚硅⾕-Java语⾔基础-持久化存储设备day00_编程⼊门_07-尚硅⾕-Java语⾔基础-bit与byteday00_编程⼊门_08-尚硅⾕-Java语⾔基础-内存day00_编程⼊门_09-尚硅⾕-Java语⾔基础-输⼊输出设备和⽹络连接设备day00_编程⼊门_10-尚硅⾕-Java语⾔基础-计算机史上的两个⿐祖day00_编程⼊门_11-尚硅⾕-Java语⾔基础-操作系统day00_编程⼊门_12-尚硅⾕-Java语⾔基础-万维⽹与软件架构⽅式day00_编程⼊门_13-尚硅⾕-Java语⾔基础-职业发展与提升day00_编程⼊门_14-尚硅⾕-Java语⾔基础-学习经验探讨day01_Java语⾔概述_01-尚硅⾕-Java语⾔基础-Java基础阶段⽬录概述day01_Java语⾔概述_02-尚硅⾕-Java语⾔基础-Java后续学习⼤纲简述day01_Java语⾔概述_03-尚硅⾕-Java语⾔基础-Java主要应⽤场景day01_Java语⾔概述_04-尚硅⾕-Java语⾔基础-Java基础图谱及基础阶段项⽬说明day01_Java语⾔概述_05-尚硅⾕-Java语⾔基础-每天授课须知day01_Java语⾔概述_06-尚硅⾕-Java语⾔基础-图形化界⾯操作与命令⾏操作介绍day01_Java语⾔概述_07-尚硅⾕-Java语⾔基础-常⽤的命令⾏指令day01_Java语⾔概述_08-尚硅⾕-Java语⾔基础-计算机语⾔的划分day01_Java语⾔概述_09-尚硅⾕-Java语⾔基础-不同编程语⾔的介绍day01_Java语⾔概述_10-尚硅⾕-Java语⾔基础-Java语⾔的历史及技术体系平台day01_Java语⾔概述_11-尚硅⾕-Java语⾔基础-Java语⾔的特点day01_Java语⾔概述_12-尚硅⾕-Java语⾔基础-JVM与垃圾收集机制day01_Java语⾔概述_13-尚硅⾕-Java语⾔基础-JDK、JRE、JVM的关系day01_Java语⾔概述_14-尚硅⾕-Java语⾔基础-JDK与JRE的安装day01_Java语⾔概述_15-尚硅⾕-Java语⾔基础-环境变量的配置day01_Java语⾔概述_16-尚硅⾕-Java语⾔基础-配置环境变量中⼏个问题的解决day01_Java语⾔概述_17-尚硅⾕-Java语⾔基础-第⼀个Java程序:HelloWorldday01_Java语⾔概述_18-尚硅⾕-Java语⾔基础-⼏个常见的bug的解决day01_Java语⾔概述_19-尚硅⾕-Java语⾔基础-EditPlus的安装和配置day01_Java语⾔概述_20-尚硅⾕-Java语⾔基础-单⾏注释与多⾏注释day01_Java语⾔概述_21-尚硅⾕-Java语⾔基础-⽂档注释的使⽤day01_Java语⾔概述_22-尚硅⾕-Java语⾔基础-多⾏注释使⽤的⼀个注意点day01_Java语⾔概述_23-尚硅⾕-Java语⾔基础-API⽂档的说明day01_Java语⾔概述_24-尚硅⾕-Java语⾔基础-第⼀个Java程序的总结day01_Java语⾔概述_25-尚硅⾕-Java语⾔基础-Java开发⼯具的说明day02_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day02_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1day02_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2day02_Java基本语法_04-尚硅⾕-Java语⾔基础-关键字和保留字的说明day02_Java基本语法_05-尚硅⾕-Java语⾔基础-标识符及命名规则day02_Java基本语法_06-尚硅⾕-Java语⾔基础-标识符的命名规范day02_Java基本语法_07-尚硅⾕-Java语⾔基础-变量的定义day02_Java基本语法_08-尚硅⾕-Java语⾔基础-定义变量的注意点day02_Java基本语法_09-尚硅⾕-Java语⾔基础-变量的分类day02_Java基本语法_10-尚硅⾕-Java语⾔基础-整型变量的使⽤说明day02_Java基本语法_11-尚硅⾕-Java语⾔基础-浮点型变量的使⽤说明day02_Java基本语法_12-尚硅⾕-Java语⾔基础-char型变量的使⽤说明day02_Java基本语法_13-尚硅⾕-Java语⾔基础-乱码的情况和字符集的说明day02_Java基本语法_14-尚硅⾕-Java语⾔基础-boolean型变量的使⽤day02_Java基本语法_15-尚硅⾕-Java语⾔基础-⾃动类型提升运算1day02_Java基本语法_16-尚硅⾕-Java语⾔基础-⾃动类型提升运算2day02_Java基本语法_17-尚硅⾕-Java语⾔基础-强制类型转换运算day02_Java基本语法_18-尚硅⾕-Java语⾔基础-变量运算规则的两个特殊情况day02_Java基本语法_19-尚硅⾕-Java语⾔基础-String类型变量的使⽤day02_Java基本语法_20-尚硅⾕-Java语⾔基础-两个关于String的练习题day02_Java基本语法_21-尚硅⾕-Java语⾔基础-String使⽤的强化说明day02_Java基本语法_22-尚硅⾕-Java语⾔基础-不同进制的表⽰⽅式day02_Java基本语法_23-尚硅⾕-Java语⾔基础-⼆进制转换为⼗进制的说明day02_Java基本语法_24-尚硅⾕-Java语⾔基础-⼆进制转换为⼗进制的练习day02_Java基本语法_25-尚硅⾕-Java语⾔基础-⼗进制转⼆进制的操作day02_Java基本语法_26-尚硅⾕-Java语⾔基础-⼆进制与⼋进制⼗六进制间的转换day03_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day03_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1day03_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2:变量的定义day03_Java基本语法_04-尚硅⾕-Java语⾔基础-复习3:变量的运算规则day03_Java基本语法_05-尚硅⾕-Java语⾔基础-算术运算符的使⽤1day03_Java基本语法_06-尚硅⾕-Java语⾔基础-算术运算符的使⽤2day03_Java基本语法_07-尚硅⾕-Java语⾔基础-算术运算符的练习day03_Java基本语法_08-尚硅⾕-Java语⾔基础-关于敲代码和练指法day03_Java基本语法_09-尚硅⾕-Java语⾔基础-赋值运算符的使⽤day03_Java基本语法_10-尚硅⾕-Java语⾔基础-赋值运算符的课后练习day03_Java基本语法_11-尚硅⾕-Java语⾔基础-⽐较运算符的使⽤day03_Java基本语法_12-尚硅⾕-Java语⾔基础-逻辑运算符的使⽤说明day03_Java基本语法_13-尚硅⾕-Java语⾔基础-逻辑运算符的使⽤测试day03_Java基本语法_14-尚硅⾕-Java语⾔基础-逻辑运算符的课后练习day03_Java基本语法_15-尚硅⾕-Java语⾔基础-左移右移位运算符的使⽤day03_Java基本语法_16-尚硅⾕-Java语⾔基础-其它位运算符的使⽤day03_Java基本语法_17-尚硅⾕-Java语⾔基础-位运算符的练习day03_Java基本语法_18-尚硅⾕-Java语⾔基础-三元运算符的使⽤day03_Java基本语法_19-尚硅⾕-Java语⾔基础-三元运算符与if-else的转换day03_Java基本语法_20-尚硅⾕-Java语⾔基础-运算符的优先级day03_Java基本语法_21-尚硅⾕-Java语⾔基础-关于流程控制的说明day03_Java基本语法_22-尚硅⾕-Java语⾔基础-if-else结构的基本使⽤day04_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day04_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1:算术与⽐较运算符day04_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2:⽐较与逻辑运算符day04_Java基本语法_04-尚硅⾕-Java语⾔基础-复习3:位运算符与三元运算符day04_Java基本语法_05-尚硅⾕-Java语⾔基础-使⽤Scannner从键盘获取int型数据day04_Java基本语法_06-尚硅⾕-Java语⾔基础-使⽤Scannner从键盘获取多种类型数据day04_Java基本语法_07-尚硅⾕-Java语⾔基础-if-else的例题1day04_Java基本语法_08-尚硅⾕-Java语⾔基础-if-else的例题2day04_Java基本语法_09-尚硅⾕-Java语⾔基础-if-else课后练习1:笔试题day04_Java基本语法_10-尚硅⾕-Java语⾔基础-if-else课后练习2:狗的年龄。
第10章枚举类与注解讲师:宋红康新浪微博:尚硅谷-宋红康Java 基础知识图解面向对象编程JDBC Java 发展历程JAVA 环境搭建基础程序设计Eclipse 使用IDEA 使用泛型元注解装箱/拆箱枚举可变参数Lambda表达式Stream APIDate/Time APIJava 新特性Oracle/MySQL 集合IO/NIO 类库多线程异常处理反射网络应用程序开发设计模式接口三大特性类的结构类/对象数据结构排序算法数组流程控制运算符数据类型关键字注解的使用12枚举类的使用10-1 枚举类的使用10.1 枚举类的使用主要内容:●如何自定义枚举类●如何使用关键字enum定义枚举类●Enum类的主要方法●实现接口的枚举类10.1.1 枚举类的使用:入门●类的对象只有有限个,确定的。
举例如下:星期:Monday(星期一)、......、Sunday(星期天)性别:Man(男)、Woman(女)季节:Spring(春节)......Winter(冬天)支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)就职状态:Busy、Free、Vocation、Dimission订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Return(退货)、Checked(已确认)Fulfilled(已配货)、线程状态:创建、就绪、运行、阻塞、死亡●当需要定义一组常量时,强烈建议使用枚举类●枚举类的实现JDK1.5之前需要自定义枚举类JDK 1.5 新增的enum 关键字用于定义枚举类●若枚举只有一个对象, 则可以作为一种单例模式的实现方式。
●枚举类的属性枚举类对象的属性不应允许被改动, 所以应该使用private final 修饰枚举类的使用private final 修饰的属性应该在构造器中为其赋值若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数1.私有化类的构造器,保证不能在类的外部创建其对象2.在类的内部创建枚举类的实例。
Java 数组排序算法详解Java 数组排序算法是 Java 语言中一个重要的组成部分,是进行数据排序的重要工具。
Java 提供了多种数组排序算法,包括快速排序、归并排序、堆排序等。
本文将对 Java 数组排序算法进行详细介绍,并针对不同的算法提供具体的实现代码。
一、快速排序快速排序是一种常用的排序算法,它采用分治的思想,通过递归地将数组划分为较小和较大的两个子数组,然后递归地排序两个子数组。
快速排序是不稳定的排序算法,其平均时间复杂度为 O(nlogn)。
快速排序的实现代码如下:```javapublic static void quickSort(int[] arr, int left, int right) {if (left < right) {int pivotIndex = partition(arr, left, right);quickSort(arr, left, pivotIndex - 1);quickSort(arr, pivotIndex + 1, right);}}private static int partition(int[] arr, int left, int right) {int pivot = arr[left];int i = left + 1;int j = right;while (i <= j) {while (i <= j && arr[i] < pivot) {i++;}while (i <= j && arr[j] > pivot) {j--;}if (i <= j) {swap(arr, i, j);i++;j--;}}swap(arr, left, j);return j;}private static void swap(int[] arr, int i, int j) { int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}```二、归并排序归并排序是一种高效的排序算法,它采用分治的思想,将数组划分为较小和较大的两个子数组,然后递归地排序两个子数组。
java数组排序,java数组排序的⼏种⽅法java数组排序详细讲解前⾔:⼏种常⽤的JAVA数组排序⽅法的整合。
java数组排序法⼀:Arrays.sort()Arrays.sort()排序⽅法在java中是最简单且最常⽤的排序⽅法1. int []arr1= {45,34,59,55};2. Arrays.sort(arr1);//调⽤⽅法排序即可java数组排序法⼆:冒泡排序简单来说,冒泡排序就是重复地⾛访过要排序的数列,⼀次⽐较两个元素,如果他们的顺序错误就把他们交换过来。
⾛访数列的⼯作是重复地进⾏直到没有再需要交换,也就是说该数列已经排序完成。
1. //array[]为待排序数组,n为数组长度2. void BubbleSort(int array[], int n)3. {4. int i, j, k;5. for(i=0; i<n-1; i++)6. for(j=0; j<n-1-i; j++)7. {8. if(array[j]>array[j+1])9. {10. k=array[j];11. array[j]=array[j+1];12. array[j+1]=k;13. }14. }15. }java数组排序法三:选择排序先找到最⼩元素所在位置的索引,然后将该元素与第⼀位上的元素进⾏交换。
1. int arr3[]= {23,12,48,56,45};2. for(int i=0;i<arr3.length;i++) {3. int tem=i;4. //将数组中从i开始的最⼩的元素所在位置的索引赋值给tem5. for(int j=i;j<arr3.length;j++) {6. if(arr3[j]<arr3[tem]) {7. tem=j;8. }9. }10. //上⾯获取了数组中从i开始的最⼩值的位置索引为tem,利⽤该索引将第i位上的元素与其进⾏交换11. int temp1=arr3[i];12. arr3[i]=arr3[tem];13. arr3[tem]=temp1;14. }java数组排序法四:反转排序将原数组按逆序排列1. //将数组第i位上的元素与第arr.length-i-1位上的元素进⾏交换2. int []arr4={23,12,48,56,45};3. for(int i=0;i<arr4.length/2;i++) {4. int tp=arr4[i];5. arr4[i]=arr4[arr4.length-i-1];6. arr4[arr4.length-i-1]=tp;7. }java数组排序法五:直接插⼊排序1. int []arr5={23,12,48,56,45};2. for (int i = 1; i < arr5.length; i++) {3. for (int j = i; j > 0; j--) {4. if (arr5[j - 1] > arr5[j]) {//⼤的放后⾯5. int tmp = arr5[j - 1];6. arr5[j - 1] = arr5[j];7. arr5[j] = tmp;8. }9. }10. }。