我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Java】数组操作 之 数组排序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Java】数组操作 之 数组排序

对数组进行排序是程序中非常基本的需求。常用的排序算法有冒泡排序、插入排序和快速排序等。

一、冒泡排序

我们来看一下如何使用冒泡排序算法对一个整型数组从小到大进行排序:

// 冒泡排序import java.util.Arrays;public class Main {    public static void main(String[] args) {        int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };        // 排序前:        System.out.println(Arrays.toString(ns));        for (int i = 0; i < ns.length - 1; i++) {            for (int j = 0; j < ns.length - i - 1; j++) {                if (ns[j] > ns[j+1]) {                    // 交换ns[j]和ns[j+1]:                    int tmp = ns[j];                    ns[j] = ns[j+1];                    ns[j+1] = tmp;                }            }        }        // 排序后:        System.out.println(Arrays.toString(ns));    }}

冒泡排序的特点是,每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。

另外,注意到交换两个变量的值必须借助一个临时变量。像这么写是错误的:

int x = 1;int y = 2;x = y; // x现在是2y = x; // y现在还是2

正确的写法是:

int x = 1;int y = 2;int t = x; // 把x的值保存在临时变量t中, t现在是1x = y; // x现在是2y = t; // y现在是t的值1

实际上,Java的标准库已经内置了排序功能,我们只需要调用JDK提供的Arrays.sort()就可以排序:

import java.util.Arrays;public class Main {    public static void main(String[] args) {        int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };        Arrays.sort(ns);        System.out.println(Arrays.toString(ns));    }}

必须注意,对数组排序实际上修改了数组本身。例如,排序前的数组是:

int[] ns = { 9, 3, 6, 5 };

在内存中,这个整型数组表示如下:

在这里插入图片描述

当我们调用Arrays.sort(ns);后,这个整型数组在内存中变为:

在这里插入图片描述
即变量ns指向的数组内容已经被改变了。

如果对一个字符串数组进行排序,例如:

String[] ns = { "banana", "apple", "pear" };

排序前,这个数组在内存中表示如下:

在这里插入图片描述
调用Arrays.sort(ns);排序后,这个数组在内存中表示如下:
在这里插入图片描述
原来的3个字符串在内存中均没有任何变化,但是ns数组的每个元素指向变化了。

二、小结

常用的排序算法有冒泡排序、插入排序和快速排序等;

冒泡排序使用两层for循环实现排序;

交换两个变量的值需要借助一个临时变量。

可以直接使用Java标准库提供的Arrays.sort()进行排序;

对数组排序会直接修改数组本身。

来源地址:https://blog.csdn.net/ihero/article/details/131619129

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Java】数组操作 之 数组排序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java数组如何排序

java中几种数组排序的方法:1、使用Arrays.sort()排序Arrays.sort()排序方法在java中是最简单且最常用的排序方法。int []arr1= {45,34,59,55};Arrays.sort(arr1);//调用方法排序即可Array
java数组如何排序
2016-11-25

Java中为什么处理排序数组比未排序数组快

这篇文章主要介绍了Java中为什么处理排序数组比未排序数组快的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中为什么处理排序数组比未排序数组快文章都会有所收获,下面我们一起来看看吧。首先来看一下问题,下面
2023-06-02

java数组排序的方法

这篇文章主要介绍“java数组排序的方法”,在日常操作中,相信很多人在java数组排序的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java数组排序的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-02

Java如何对数组排序

对Java数组进行排序是一种常见操作,可重新排列元素以升序或降序排列。Java提供了多种排序算法,每种算法的复杂性和效率不同。常见算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序、桶排序和基数排序。选择合适的算法取决于数组大小、元素类型和所需性能。了解不同算法的优缺点对于编写高效的排序代码至关重要。
Java如何对数组排序
2024-04-02

java怎么对数组降序排序

Java中可以使用Arrays类的sort()方法对数组进行排序,如果需要降序排序,可以使用Comparator.reverseOrder()方法来创建一个降序比较器。以下是对数组降序排序的示例代码:```javaimport java.u
2023-08-15

java数组常用操作

一、定义一个Java数组定义数组有三种方法。第一种是定义了一个数组,并且指定了数组的长度,我们这里称它为动态定义。第二种是直接初始化数组内容第三种在分配内存空间的同时还初始化了值。String[] aArray = new String[5];String[]
2015-10-26

如何在 Java 中对数组进行排序?(java怎么对数组进行排序)

在Java中,对数组进行排序是一个常见的操作,它可以帮助我们更好地处理和分析数据。Java提供了多种方式来对数组进行排序,以下是一些常用的方法:一、使用Arrays.sort()方法Java的Arrays类提供了
如何在 Java 中对数组进行排序?(java怎么对数组进行排序)
Java2024-12-21

如何在 Java 中进行数组排序编程?(java怎么编程排序数组)

在Java编程中,数组排序是一个常见且重要的操作。数组排序可以让数据更有序,便于后续的处理和查询。下面将详细介绍在Java中如何编程实现数组排序。一、使用Java的内置排序方法Java提供了Arrays类,其中
如何在 Java 中进行数组排序编程?(java怎么编程排序数组)
Java2024-12-22

java如何实现数组排序

这篇文章主要为大家展示了“java如何实现数组排序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何实现数组排序”这篇文章吧。数组排序(冒泡排序)public class TestDem
2023-06-27

php之二维数组排序问题

这篇文章主要介绍了php之二维数组排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-23

Ruby 数组排序技巧:快速掌握高效操作

Ruby数组操作如何实现排序在编程的世界里,数据是最基本的元素。而当我们需要处理大量的数据时,一个良好的数据结构选择就显得至关重要了。在众多的数据结构中,数组以其简洁明了的特点,成为了许多开发者的首选。而在Ruby语言中,数组的操作更是简单直接,使得数据处理变得高效且直观
Ruby 数组排序技巧:快速掌握高效操作
ruby2024-12-17

如何实现 Java 数组从小到大排序?(java数组怎么从小到大排序)

在Java编程中,对数组进行排序是一项常见的操作。其中,将数组从小到大排序是一个基础而重要的技能。本文将详细介绍在Java中如何实现数组的从小到大排序。一、选择合适的排序算法Java提供了多种排序算法,常见的有冒泡排序
如何实现 Java 数组从小到大排序?(java数组怎么从小到大排序)
Java2024-12-18

Java如何对数组逆向排序

本文详细介绍了在Java中对数组进行逆序排序的不同方法。这些方法包括使用Collections.reverseOrder()、Arrays.sort()和Comparator、StreamAPI以及循环。文章还提供了示例代码,演示了每种方法如何实现,并给出了有关选择最佳方法的建议。
Java如何对数组逆向排序
2024-04-02

java数组及arrays类对数组的操作实例

数组的初始化有两种方式静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度。如:int[] a1 = new int[] {1,2,3,4};
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录