首页 > 编程语言 >Java十大经典排序算法汇总

Java十大经典排序算法汇总

时间:2023-07-27 11:33:27浏览次数:36  
标签:Sort 多轮 Java 元素 汇总 有序 序列 排序

以下是十大经典排序算法:

冒泡排序(Bubble Sort):比较相邻两个元素,如果逆序则交换,重复多轮,直到无逆序情况。

选择排序(Selection Sort):在待排序元素中选择最小(大)元素,放在已排序序列的起始位置,重复多轮,直到所有元素有序。

插入排序(Insertion Sort):从第二个元素开始,将每个元素插入到已排序序列中的合适位置,重复多轮,直到所有元素有序。

希尔排序(Shell Sort):将待排序序列分割成若干子序列,分别进行插入排序,重复多轮,直到所有元素有序。

归并排序(Merge Sort):将待排序序列分成若干子序列,对每个子序列进行归并排序,将有序的子序列合并成一个有序序列,重复多轮,直到所有元素有序。

快速排序(Quick Sort):从序列中选择一个枢轴元素,将序列分成两部分,小于等于枢轴元素的放在左边,大于枢轴元素的放在右边,对左右两部分分别递归进行快排,重复多轮,直到所有元素有序。

堆排序(Heap Sort):将待排序序列构造成一个大根堆,将堆顶元素(最大值)与末尾元素交换,重复多轮,直到所有元素有序。

计数排序(Counting Sort):根据待排序序列中每个元素出现的次数,计算小于等于每个元素的元素个数,从后往前遍历待排序序列,将每个元素放在相应位置,重复一轮,直到所有元素有序。

桶排序(Bucket Sort):将待排序序列分到有限数量的桶中,每个桶单独排序,最后将所有桶的元素按照顺序合并成一个序列,重复多轮,直到所有元素有序。

基数排序(Radix Sort):将待排序元素按位数切割成不同的数字,然后按每个位数分别进行排序,重复多轮,直到所有元素有序。

以上排序算法各有优缺点,不同场景下应选择不同的算法来实现排序。

标签:Sort,多轮,Java,元素,汇总,有序,序列,排序
From: https://www.cnblogs.com/qian-fen/p/17584519.html

相关文章

  • java启动jar包修改JVM默认内存问题
    JVM默认物理内存JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每......
  • 后缀排序
    后缀排序本文做复习用,不宜初学用。定义\(sa\)表示排名为\(i\)的位置。\(rk\)表示位置为\(i\)的排名。\(y\)表示按照第二关键字排序排名为\(i\)的位置。\(height\)表示排名为\(i\)和\(i-1\)的后缀的最大前缀\(h\)表示位置为\(i\)和它排名前一位的后缀......
  • Java基础和MySQL
    Java基础==和equals的区别==比较的是值是否相等。==作用于基本数据类,他比较的是内容==作用于引用数据类型,比较的是地址值equals比较的是对象是否是同一个对象,比较的是对象的内容equals()方法存在于Object类中,在没有重写之前和==是一样,也是比较的是引用数据类型的地址......
  • sort排序
    数值排序: arr.sort((a,b)=>a.id-b.id); 字符串排序:varcompare=function(a,b){      if(a.name<b.name){        return-1;      }elseif(a.name>b.name){        return1;   ......
  • 尚硅谷Java 宋红康2023版 - 学习笔记
    尚硅谷Java宋红康2023版-学习笔记观看地址https://www.bilibili.com/video/BV1PY411e7J6JDKJREJVMjdk是开发包,jre是运行包,jvm是java虚拟机(最小核心)javajdk版本8或11我这里就用8了。......
  • java.security.InvalidKeyException: Illegal key size 的解决方法
    一、原因JDK受版本安全限制,默认只允许128位长度以内的。秘钥长度,如果密钥大于128,会抛出java.security.InvalidKeyException:Illegalkeysize异常.java运行时环境默认读到的是受限的policy文件.文件位于${java_home}/jre/lib/security,这种限制是因为美国对软件出口的控制......
  • Java面试题 P9:List和Set的区别
    List:有序,按对象进入的顺序保存对象,可重复,允许多个Null元素对象,可以使用Iterator取出所有元素,在逐一遍历,还可以使用get(intindex)下标方式,获取指定下标的元素值Set:无序,不可重复,最多允许有一个Null元素对象,取元素时只能用lterator接口取得所有元素,在逐一遍历各个元素  ......
  • goole-java-format
    使用GoogleJavaFormat概述在本文中,我将教会你如何使用GoogleJavaFormat。GoogleJavaFormat是一个用于自动格式化Java代码的工具,可以帮助开发者编写符合Google代码风格指南的代码。通过使用GoogleJavaFormat,你可以减少手动调整代码格式的工作量,提高代码的可读性和一致性。......
  • Java方法详解
    Java方法详解什么是方法-System.out.println(),那么她是什么?-Java方法是语句的集合,它们在一起执行一个功能1方法是解决一类问题的步骤的有序组合2方法包含于类或对象中3方法在程序中被创建,在其他地方被引用-设计方法的原则:方法的本意是功能......
  • Java面试题 P8:接口和抽象类的区别
    普通回答:1、抽象类可以有抽象方法和实现的方法,可以存在普通成员函数,而接口中只能存在publicinterface方法。2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的。3、抽象类只能继承一个,接口可以实现多个。抽象类和接口的异同点 ......