JAVA语言之一些排序算法的特性介绍
小标 2019-01-09 来源 : 阅读 1419 评论 0

摘要:本文主要向大家介绍了JAVA语言之一些排序算法的特性介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之一些排序算法的特性介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


本文主要记载一些排序算法的特性:


1.选择排序:选择排序每次从未排序的所有数据中通过比较,选出最小的数据,并将之与未排序数据中的第一个数据交换位置,然后继续按照此方法从剩余的数据中选择最小的数据,并按照上述方法处理,如此循环,直至所有数据排好序。


特性:运行时间和输入无关。即:即使数组是有序的数组,但是它和随机无序数组的排序时间相同。


数据移动是最少的,总共用了N次交换。


2.插入排序:插入排序是指每次都按顺序从未排序的数据中选择第一个数据,并将之通过与已经排好序的数据相比较,将之插入到合适的位置,并将其之后已经排好序的数据都后移移位。


特性:插入排序需要的交换操作和数组中倒置的数量相同,比较的次数大于等于倒置的数量。


其较适用于部分有序的数组,排序速度较快。


3.希尔排序:将数组分为h个子数组,每个子数组的数据都是在原数组中每隔h的数据组成的新数组,然后分别对每个子数组进行排序。而后将h减小,在以当前的h按照上述方法继续排序,直至h值为小于1为止,此时排序完成。


4.归并排序:归并是指将两个有序的数组归并成一个更加大的有序数组 。


5.快速排序:选取一个切分点将一个数组分为两个子数组,是左边的数据小于切分点,右边的数据大于切分点,然后再分别选取切分点将两个子数组分为更小的两个子数组,如此循环,直至不可再分为止。


缺点:切分不平衡时,使排序较为低效。


算法改进:当子数组较小时,不再使用快速排序,改为使用插入排序即可。


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved