`
luosijin123
  • 浏览: 12157 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

JAVA排序算法API

阅读更多
<!-- ========= START OF TOP NAVBAR ======= -->

<!-- --> 

<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->

org.luosijin.test
类 Sort

java.lang.Object
  继承者 org.luosijin.test.Sort

public class Sort
extends java.lang.Object

Java实现几种常见排序方法:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。

 

 

版本:
V5.0
作者:
罗嗣金

<!-- ======== CONSTRUCTOR SUMMARY ======== --><!-- -->

构造函数摘要
Sort()
           
  <!-- ========== METHOD SUMMARY =========== --><!-- --> 方法摘要
static void bubbleSort(int[] nums)
          冒泡法排序
比较相邻的元素。
static void insertSort(int[] nums)
          插入排序
从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 将新元素插入到该位置中 重复步骤2
static void merge(int[] data, int p, int q, int r)
          归并算法实现
static void mergeSort(int[] nums, int left, int right)
          归并排序
申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某一指针达到序列尾 将另一序列剩下的所有元素直接复制到合并序列尾 算法参考:Java部落
static void quickSort(int[] nums, int start, int end)
          快速排序
从数列中挑出一个元素,称为“基准” 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。
static void selectSort(int[] nums)
          选择排序
在未排序序列中找到最小元素,存放到排序序列的起始位置 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。
 <!-- --> 从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

<!-- ========= CONSTRUCTOR DETAIL ======== --><!-- -->

构造函数详细信息
<!-- -->

Sort

public Sort()
<!-- ============ METHOD DETAIL ========== -->

<!-- -->

方法详细信息

<!-- -->

bubbleSort

public static void bubbleSort(int[] nums)
冒泡法排序
  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

 

参数:
nums - 需要排序的整型数组

<!-- -->

quickSort

public static void quickSort(int[] nums,
                             int start,
                             int end)
快速排序
  • 从数列中挑出一个元素,称为“基准”
  • 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分割之后,该基准是它的最后位置。这个称为分割(partition)操作。
  • 递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。

 

参数:
nums -
start -
end -

<!-- -->

selectSort

public static void selectSort(int[] nums)
选择排序
  • 在未排序序列中找到最小元素,存放到排序序列的起始位置
  • 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。
  • 以此类推,直到所有元素均排序完毕。

 

参数:
nums -

<!-- -->

insertSort

public static void insertSort(int[] nums)
插入排序
  • 从第一个元素开始,该元素可以认为已经被排序
  • 取出下一个元素,在已经排序的元素序列中从后向前扫描
  • 如果该元素(已排序)大于新元素,将该元素移到下一位置
  • 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  • 将新元素插入到该位置中
  • 重复步骤2

 

参数:
nums -

<!-- -->

mergeSort

public static void mergeSort(int[] nums,
                             int left,
                             int right)
归并排序
  • 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
  • 设定两个指针,最初位置分别为两个已经排序序列的起始位置
  • 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
  • 重复步骤3直到某一指针达到序列尾
  • 将另一序列剩下的所有元素直接复制到合并序列尾
算法参考:Java部落

 

参数:
nums -
left -
right -

<!-- -->

merge

public static void merge(int[] data,
                         int p,
                         int q,
                         int r)
归并算法实现

 

参数:
data -
p -
q -
r -
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->

<!-- -->

<!-- ======== END OF BOTTOM NAVBAR ======= -->
分享到:
评论

相关推荐

    用Java实现几种常见的排序算法

    一起学习啊。。。。。。。。。。。。。。。。。。

    用Java实现的堆排序算法

    用Java实现的堆排序算法,二叉树转换为堆,然后排序

    Java 排序算法知识点总结.zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition...

    数据结构与算法分析_java语言描述

    本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...

    Java练习算法代码(排序,数据结构,小算法练习题).zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition...

    SortingSounds:可视化三种不同排序算法的Java应用程序

    可视化三种不同排序算法的Java应用程序:冒泡排序,快速排序和数组排序,可以选择对排序时进行的每个比较播放不同的音调。 该应用程序包含4个控件和一个按钮,用于开始可视化。 排序方法ChoiceBox允许在不同的排序...

    用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录.zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition)...

    史上最全经典排序算法总结(Java实现).zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition...

    算法第四版-PDF-网盘链接

     2.1.4 排序算法的可视化 159  2.1.5 比较两种排序算法 159  2.1.6 希尔排序 162  2.2 归并排序 170  2.2.1 原地归并的抽象方法 170  2.2.2 自顶向下的归并排序 171  2.2.3 自底向上的归并排序...

    《算法》中文版,Robert Sedgewick,塞奇威克

    2.5.2 我应该使用哪种排序算法 2.5.3 问题的归约 2.5.4 排序应用一览 第3章 查找 3.1 符号表 3.1.1 API 3.1.2 有序符号表 3.1.3 用例举例 3.1.4 无序链表中的顺序查找 3.1.5 有序数组中的二分查找 3.1.6 ...

    算法-第4版-完整版

    2.1.4 排序算法的可视化 159 2.1.5 比较两种排序算法 159 2.1.6 希尔排序 162 2.2 归并排序 170 2.2.1 原地归并的抽象方法 170 2.2.2 自顶向下的归并排序 171 2.2.3 自底向上的归并排序 175 ...

    算法 第4版 高清中文版

    2.5.2 我应该使用哪种排序算法 218 2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章 查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 ...

    数据结构与问题求解Java语言

    本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...

    算法 第4版-谢路云译-带完整书签

    2.5.2 我应该使用啷种排序算法 218 2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序...

    高级排序算法详解(归并排序)

    归并排序是建立在归并操作上的一种有效的排序算法 ,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表...

    常用数据结构及其算法的Java实现.zip

    包括但不仅限于链表、栈,队列,树,堆,图等经典数据结构及其他经典基础算法(如排序等)... Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,...

    算法实践(JavaScript &amp; Java),排序,查找、树、两指针、动态规划等.zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition)...

    Java实现外部排序(10M内存排序1G大文件)

    有文件大小为1G的一个文件,文件每行存储的为URL及其访问次数,例如/api/auth/login 2 ,计算出访问次数最多的前5个URL和其访问次数,每行的URL可能重复,计算内存限制10M。 === 内含解题思路、测试结果截图、可运行...

    java学习总结-j2se Java学习资料

    sorts 基本排序算法 jvm jvm相关 letcode letcode题目解析 普通java项目手动引包: 1.下载需要的jar包,放入lib目录下 2.直接选择要导入的jar包 3.右键选择Build Path--&gt;add to Build Path 单元测试@Test

    算法,4th,塞奇威克 (Robert Sedgewick)韦恩 (Kevin Wayne), 谢路云 译.azw3

    2.5.2 我应该使用哪种排序算法 2.5.3 问题的归约 2.5.4 排序应用一览 第3章 查找 3.1 符号表 3.1.1 API 3.1.2 有序符号表 3.1.3 用例举例 3.1.4 无序链表中的顺序查找 3.1.5 有序数组中的二分查找 3.1.6 ...

Global site tag (gtag.js) - Google Analytics