总结Java常用排序算法

总结Java常用排序算法

算法简介

排序算法是计算机程序设计中最基本的问题之一,它的目的是将一组“无序”的数据,按照某种规律进行排列。在Java中,常用的排序算法有如下几种:

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 希尔排序
  • 归并排序
  • 快速排序
  • 堆排序

冒泡排序

冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就将它们交换过来,直到没有元素需要交换,再执行下一次遍历。

示例代码如下:

public static void bubbleSort(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

快速排序

快速排序使用了分治策略来把一个序列分为两个子序列。步骤为:

  1. 从数列中挑出一个基准值。
  2. 将所有比基准值小的数放在基准值前面,所有比基准值大的数放在基准值的后面(相同的数可以放到任何一边)。这个称为分区(partition)操作。
  3. 对左右两个子序列分别递归地进行步骤1~2。

示例代码如下:

public static void quickSort(int[] arr, int left, int right) {
    if (left < right) {
        int i = left;
        int j = right;
        int pivot = arr[left];
        while (i < j) {
            while (i < j && arr[j] >= pivot) {
                j--;
            }
            arr[i] = arr[j];
            while (i < j && arr[i] <= pivot) {
                i++;
            }
            arr[j] = arr[i];
        }
        arr[i] = pivot;
        quickSort(arr, left, i - 1);
        quickSort(arr, i + 1, right);
    }
}

结语

以上就是常用的Java排序算法详细介绍和示例代码。在实际开发中,应根据数据量大小、数据特点、时间复杂度等来选择合适的排序算法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:总结Java常用排序算法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java 读取本地文件实例详解

    Java 读取本地文件实例详解 1. 读取文本文件 1.1 创建文件对象 首先,需要创建一个 File 对象来表示本地文件。下面是创建 file.txt 文件的示例代码。 // 创建 File 对象 File file = new File("file.txt"); 如果文件不在当前项目的工作目录中,则需要提供文件的完整路径。 1.2 读…

    Java 2023年5月20日
    00
  • SpringBoot定时任务实现数据同步的方法

    这里是关于“Spring Boot定时任务实现数据同步的方法”的完整攻略。 1. 在Spring Boot中使用定时任务 在Spring Boot中,我们可以通过使用@EnableScheduling注解来开启定时任务的支持。注解需要在Spring Boot的应用主类上添加。添加之后,我们就可以使用Spring的@Scheduled注解来定义我们的定时任务了…

    Java 2023年5月20日
    00
  • Java中的try-catch-finally语句是什么?

    Java中的try-catch-finally语句是用于处理异常的一种结构。当程序运行过程中出现异常,程序会中止运行并抛出异常信息至控制台,这样会导致程序运行失败。但是在try-catch-finally代码块中,异常的抛出和处理被封装起来,程序可以在异常出现时进行自我修复,保证程序的稳定性和可靠性。 try-catch-finally语句的基本语法如下: …

    Java 2023年4月27日
    00
  • Java中从键盘输入多个整数的方法

    题目:Java中从键盘输入多个整数的方法 为了方便解释,我们假设从键盘读入的多个整数用空格隔开,并且输入的整数个数是不确定的。 我们可以通过如下步骤实现从键盘输入多个整数: 导入Scanner类 在Java中,从键盘读取数据需要使用java.util包中的Scanner类。因此,我们需要在文件开头加上以下语句: import java.util.Scanne…

    Java 2023年5月26日
    00
  • 吊打Java面试官之Lambda表达式 Stream API

    吊打Java面试官之Lambda表达式 Stream API 在Java 8中,Lambda表达式和Stream API是两个非常强大和重要的功能,能够帮助开发人员编写更简洁、更灵活的代码。下面我们将详细讲解Lambda表达式和Stream API的使用方法。 Lambda表达式 Lambda表达式是一种匿名函数,可以将其视为一种简洁而强大的快捷方式,可以在…

    Java 2023年5月26日
    00
  • 一篇文章带你入门Java UML的类图

    下面我将为您详细讲解“一篇文章带你入门Java UML的类图”的完整攻略。 简介 Java UML是Java开发中必不可少的一部分,它可以帮助开发者对Java程序进行设计、开发和维护。其中类图是Java UML的重要组成部分。类图是一种描述类、接口、实现和它们之间关系的图形化方式。 步骤 下面我将向您介绍如何使用Java UML的类图进行Java编程: 1.…

    Java 2023年5月24日
    00
  • Spring整合Dubbo框架过程及原理解析

    下面是关于“Spring整合Dubbo框架过程及原理解析”的完整攻略: 1. Dubbo框架简介 Dubbo是一款开源的、高性能的Java RPC框架。Dubbo提供了完整的服务治理方案,包括服务注册与发现、服务路由、负载均衡、容错机制等。Dubbo的核心是基于高效的序列化与网络通信框架实现的高性能远程过程调用(RPC)。 2. Spring整合Dubbo …

    Java 2023年5月19日
    00
  • Java使用Maven BOM统一管理版本号的实现

    Java使用Maven BOM(Bill Of Materials)可以统一管理项目库依赖的版本号,避免了在POM文件中重复声明版本号的冗余问题,并且可以减轻开发者手动维护库依赖版本的工作量。 以下是Java使用Maven BOM统一管理版本号的实现攻略: 1.创建BOM项目 首先,创建一个Maven项目,称为“BOM项目”。在pom.xml文件中定义BOM…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部