小标
2019-01-09
来源 :
阅读 1419
评论 0
摘要:本文主要向大家介绍了JAVA语言之一些排序算法的特性介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言之一些排序算法的特性介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要记载一些排序算法的特性:
1.选择排序:选择排序每次从未排序的所有数据中通过比较,选出最小的数据,并将之与未排序数据中的第一个数据交换位置,然后继续按照此方法从剩余的数据中选择最小的数据,并按照上述方法处理,如此循环,直至所有数据排好序。
特性:运行时间和输入无关。即:即使数组是有序的数组,但是它和随机无序数组的排序时间相同。
数据移动是最少的,总共用了N次交换。
2.插入排序:插入排序是指每次都按顺序从未排序的数据中选择第一个数据,并将之通过与已经排好序的数据相比较,将之插入到合适的位置,并将其之后已经排好序的数据都后移移位。
特性:插入排序需要的交换操作和数组中倒置的数量相同,比较的次数大于等于倒置的数量。
其较适用于部分有序的数组,排序速度较快。
3.希尔排序:将数组分为h个子数组,每个子数组的数据都是在原数组中每隔h的数据组成的新数组,然后分别对每个子数组进行排序。而后将h减小,在以当前的h按照上述方法继续排序,直至h值为小于1为止,此时排序完成。
4.归并排序:归并是指将两个有序的数组归并成一个更加大的有序数组 。
5.快速排序:选取一个切分点将一个数组分为两个子数组,是左边的数据小于切分点,右边的数据大于切分点,然后再分别选取切分点将两个子数组分为更小的两个子数组,如此循环,直至不可再分为止。
缺点:切分不平衡时,使排序较为低效。
算法改进:当子数组较小时,不再使用快速排序,改为使用插入排序即可。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号