iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中都有哪些排序算法
  • 239
分享到

Java中都有哪些排序算法

2023-06-02 23:06:53 239人浏览 八月长安
摘要

今天就跟大家聊聊有关Java中都有哪些排序算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。排序<p _hover-ignore="1" white-spa

今天就跟大家聊聊有关Java中都有哪些排序算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。


排序

<p _hover-ignore="1" white-space:nORMal;background-color:#FFFFFF;">排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。

概念

将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。

Java中都有哪些排序算法

常见排序算法

快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。

分类

稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字,在 用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法 是稳定的。其中冒泡,插入,基数,归并属于稳定排序,选择,快速,希尔,堆属于不稳定排序。

就地排序:若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间为O(1), 则称为就地排序。

排序算法

冒泡排序

持续比较相邻元素,大的挪到后面,因此大的会逐步往后挪,故称之为冒泡。 复杂度分析:平均情况与最坏情况均为 O(n^2), 使用了 temp 作为临时交换变量,空间复杂度为 O(1)

堆排序

堆排序的是集合了插入排序的单数组操作,又有归并排序的时间复杂度,完美的结合了2者的优点。

直接插入排序

直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的有序的表中,从而得到一个新的、记录数增1的有序表。当前元素的前面元素均为有序,要插入时,从当前元素的左边开始往前找(从后往前找),比当前元素大的元素均往右移一个位置,最后把当前元素放在它应该呆的位置就行了。

归并排序

归并排序(Merge Sort)与快速排序思想类似:将待排序数据分成两部分,继续将两个子部分进行递归的归并排序;然后将已经有序的两个子部分进行合并,最终完成排序。

其时间复杂度与快速排序均为O(nlogn),但是归并排序除了递归调用间接使用了辅助空间栈,还需要额外的O(n)空间进行临时存储。从此角度归并排序略逊于快速排序,但是归并排序是一种稳定的排序算法,快速排序则不然。

所谓稳定排序,表示对于具有相同值的多个元素,其间的先后顺序保持不变。对于基本数据类型而言,一个排序算法是否稳定,影响很小,但是对于结构体数组,稳定排序就十分重要。

快速排序

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

直接选择排序

所谓选择排序,就是每次找到未排序中最小的(最大的也行)元素的位置,找到后与该位置与未排序序列的第一个元素交换值,直到该序列成为有序序列。

初始状态整个序列为无序序列,每次交换都使有序序列的长度加一,无序序列的起始位置后移一位。选择排序的平均时间复杂度为O(n^2),且选择排序相对不稳定。

希尔排序

shellsort是最古老的排序算法之一,该算法以其发明者Donald L. Shell的名字命名。

在ShellSort排序算法之前的算法时间复杂度基本都是O(n2)O(n2),该算法是突破这个时间复杂度的第一批算法之一。

看完上述内容,你们对Java中都有哪些排序算法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Java中都有哪些排序算法

本文链接: https://www.lsjlt.com/news/231661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Java中都有哪些排序算法
    今天就跟大家聊聊有关Java中都有哪些排序算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。排序<p _hover-ignore="1" white-spa...
    99+
    2023-06-02
  • Python中都有哪些排序算法
    今天就跟大家聊聊有关Python中都有哪些排序算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.冒泡排序冒泡排序是 CS  入门课程中最常讲授的一种,因为它清楚地说明了...
    99+
    2023-06-16
  • java的排序算法有哪些
    这篇文章主要介绍“java的排序算法有哪些”,在日常操作中,相信很多人在java的排序算法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java的排序算法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-02
  • 14种排序算法和PHP数组都有哪些
    14种排序算法和PHP数组都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在这篇文章里,我将向大家介绍用PHP写的排序算法的测试。以下是14种排序算法:快速排序计数排序梳...
    99+
    2023-06-17
  • JavaScript中有哪些排序算法
    这期内容当中小编将会给大家带来有关JavaScript中有哪些排序算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。说明&middot;  每个浏览器测...
    99+
    2024-04-02
  • 有哪些排序算法
    有哪些排序算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.插入排序—直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入...
    99+
    2023-06-15
  • C#中有哪些排序算法
    这期内容当中小编将会给大家带来有关C#中有哪些排序算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#排序算法之冒泡排序   一下是C#开发出冒泡排序算法。希望能为C#语言的学习者带...
    99+
    2023-06-17
  • Python中的排序算法有哪些?
    Python中常用的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。下面将分别介绍这些排序算法的原理,并给出相应的代码示例。冒泡排序:冒泡排序是一种简单直观的排序算法。它重复地遍历要排序的列表,比较相邻两个元素大小,并...
    99+
    2023-10-22
    算法 Python 排序算法 排序算法的关键词:
  • php排序算法有哪些
    php中常见的排序算法有冒泡排序、选择排序、插入排序、归并排序、快速排序几种冒泡排序算法冒泡排序算法是一种简单直观的排序算法,其原理是重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序错误就交换它们的位置,重复地进行直到没有相邻...
    99+
    2024-04-02
  • python排序算法有哪些
    python中常见的排序算法有以下几种冒泡排序算法冒泡排序算法是一种简单直观的排序算法,其原理是重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序错误就交换它们的位置,重复地进行直到没有相邻的元素需要交换,则元素列表排序完成。选...
    99+
    2024-04-02
  • C#排序算法有哪些
    C#排序算法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#排序算法一、冒泡排序(Bubble)using System;   ...
    99+
    2023-06-17
  • PHP中有哪些基本排序算法
    PHP中有哪些基本排序算法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 冒泡排序思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调...
    99+
    2023-06-17
  • Java中的排序方法有哪些
    今天就跟大家聊聊有关Java中的排序方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。直接插入排序<code class="language-java hljs...
    99+
    2023-05-31
    java 排序 ava
  • java排序方法有哪些
    java中的排序方法有:1.选择排序;2.希尔排序;3.插入排序;4.冒泡排序;5.快速排序;java中的排序方法有以下几种选择排序选择排序算法其原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待...
    99+
    2024-04-02
  • JavaScript中常用的排序算法有哪些
    这篇文章主要介绍JavaScript中常用的排序算法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、冒泡排序冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段...
    99+
    2024-04-02
  • C++数组排序算法有哪些
    本篇内容主要讲解“C++数组排序算法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++数组排序算法有哪些”吧!三种简单排序1:选择排序(从小到达)从第一...
    99+
    2024-04-02
  • java中ArrayList的排序方法有哪些
    在Java中,ArrayList类提供了多种排序方法,可以根据不同的需求选择适合的排序方法。以下是常用的ArrayList排序方法:...
    99+
    2023-08-17
    java ArrayList
  • Java数据结构常见排序算法有哪些
    今天小编给大家分享一下Java数据结构常见排序算法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、 认识排序在学校中...
    99+
    2023-07-05
  • c++常用的排序算法有哪些
    小编给大家分享一下c++常用的排序算法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!c++常用的排序算法//选择排序法SelectionSort(int a...
    99+
    2023-06-03
  • 常用的JS排序算法有哪些
    这篇文章给大家分享的是有关常用的JS排序算法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.冒泡排序var bubbleSort = fun...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作