网站首页 > java教程 正文
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:
(1) 插入排序:直接插入排序、二分法插入排序、希尔排序。
(2) 选择排序:简单选择排序、堆排序。
(3) 交换排序:冒泡排序、快速排序。
(4) 归并排序
(5) 基数排序
当然,所需要辅助空间最多的是:归并排序
所需要辅助空间最少的是:堆排序
平均速度最快的:肯定是快速排序啦
具有不稳定性的:快速排序,希尔排序,堆排序
接下来我们就针对几个常用且重要的排序方法进行简单的讲解:
一、插入排序
1、思路:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
2、实例:
3、Java实现
二、简单选择排序
1、思路:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
2、实例:
3、Java实现
三、希尔排序(最小增量排序)
1、思路:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
2、实例:
3、Java实现
四、冒泡排序
1、思路:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
2、实例:
3、Java实现
需要更多学习笔记干货的小伙伴、欢迎关注公众号【老九学堂】(づ ̄3 ̄)づ╭?~
猜你喜欢
- 2024-10-31 「Java基础」你必须知道的Java排序算法
- 2024-10-31 Java排序算法实现方式(算法思路 过程动图)
- 2024-10-31 一文读懂Java排序算法(所有的排序算法比较)
- 2024-10-31 java数据结构与算法之快速排序(用java实现快速排序算法)
- 2024-10-31 开发人员是如何使用Java进行排序?
- 2024-10-31 算法:什么是外部排序(外部排序有哪几种)
- 2024-10-31 Java 常见的排序算法,一次跟你说明白 ~ 直接插入排序
- 2024-10-31 Java排序算法-Java入门|Java基础课程
- 2024-10-31 必看java八大排序算法(java十大排序算法)
- 2024-10-31 冒泡排序、插入排序、选择排序、希尔排序
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)