一、Java中常用的排序算法


以下是本篇文章正文内容,如有错误麻烦请指出。 谢谢 !!!


一、简介

1、稳定排序与不稳定排序

(1)稳定排序:排序前与排序后相同的元素(排序码)排序顺序保持不变。
(2)不稳定排序:排序前与排序后相同的元素(排序码)排序顺序发生变化。

2、内排序与外排序

(1)内排序:排序过程完全依靠内存进行排序完成。
(2)外排序:排序过程中需要依靠外部存储才能完成排序。

3、十大内部排序算法

(1)选择排序
直接选择排序、堆排序
(2)交换排序
冒泡排序、快速排序
(3)插入排序
直接插入排序、折半插入排序、Shell排序
(4)归并排序
(5)桶式排序
(6)基数排序

4、十大内部排序汇总

重点掌握的排序:堆排序、冒泡排序、快速排序、归并排序
在这里插入图片描述

4、各种内部排序方法性能比较

(1)从平均时间而言:快速排序最佳。但在最坏情况下时间性能不如堆排序归并排序
(2)从算法简单性看:由于直接选择排序、直接插入排序和冒泡排序的算法比较简单,将其认为是简单算法。对于Shell排序、堆排序、快速排序和归并排序
算法,其算法比较复杂,认为是复杂排序。
(3)从稳定性看:直接插入排序、冒泡排序和归并排序时稳定的;而直接选择排序、快速排序、 Shell排序和堆排序是不稳定排序
(4)从待排序的记录数n的大小看,n较小时,宜采用简单排序;而n较大时宜采
用改进排序。

5、排序算法的选择

(1)若n较小(如n≤50),可采用直接插入或直接选择排序。 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插入,应选直接选择排序为宜。
(2)若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排序为宜;
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序

二、排序算法介绍

1、堆排序

在这里插入图片描述
在这里插入图片描述

2、冒泡排序

在这里插入图片描述

3、快速排序

在这里插入图片描述

4、归并排序

在这里插入图片描述

5、(简单)选择排序在这里插入图片描述

6、(直接)插入排序

在这里插入图片描述

7、计数排序

在这里插入图片描述

8、Shell排序在这里插入图片描述

9、基数排序在这里插入图片描述

10、桶排序

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值