本文实例讲述了Java插入排序方法。分享给大家供大家参考。具体分析如下:

有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到插入排序法。本文主要介绍的是插入排序的java实现。
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。比较和交换的时间复杂度为O(n^2),算法自适应,对于数据已基本有序的情况,时间复杂度为O(n),算法稳定,开销很低。算法适合于数据已基本有序或者数据量小的情况。
插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置。
算法描述
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:
1. 从第一个元素开始,该元素可以认为已经被排序
2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
5. 将新元素插入到下一位置中
6. 重复步骤2
如果比较操作的代价比交换操作大的话,可以采用二分查找法来减少比较操作的数目。该算法可以认为是插入排序的一个变种,称为二分查找排序。
代码实现
public void insertionSort() {
// 插入排序
int out, in;
int count1 = 0, count2 = 0;// 复制次数,比较次数
for (out = 1; out < nElems; out++) {
long temp = a[out];
in = out;
boolean flag=in>0&&a[in-1]>=temp;
while(flag){
if(a[in-1]>=temp){
if(in>0){
a[in]=a[in-1];
count1++;
--in;
}
}
count2++;
flag=in>0&&a[in-1]>=temp;
}
a[in] = temp;
}
System.out.println("复制次数为:" + count1 + " 比较次数为:" + count2);
}
插入排序法在数据已有一定顺序的情况下,效率较好。但如果数据无规则,则需要移动大量的数据,其效率就与冒泡排序法和选择排序法一样差了。
希望本文所述对大家的java程序设计有所帮助。
相关推荐:
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
英语日记AI生成:轻松提升英语水平的智能助手
优排软件:高效管理新天地,轻松提升工作效率,长葛外贸网站建设
优化,让生活与工作更高效-从个人到企业的全面升级,广州百度seo费用
OpenPose大白话解释:让你轻松理解姿态识别的神奇技术,ai天天晴
互联网时代的“搜索截流”新玩法:如何抓住流量红利,甘孜做优化网站软件
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
SEO优化大全:让你的网站排名轻松破局,精准引流更高效!,274357524ai
互联网快照:记录数字时代的每个瞬间,全网seo怎么优化内容
SEO就业前景如何?打造数字时代的职业新风口,常州武进区水产网站建设
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
内容创作新时代:自动生成文章的AI如何改变写作生态
高效创作新时代AI文案速写工具,让创作更轻松
SEO快速优化文章排名:提升网站流量的必备技巧,ai小苹果会员分享
AI一键生成原创文章,让创作更高效更轻松!
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
用AI写文章查重率高吗?揭秘AI写作与查重检测的关系
为什么要做seo si,为什么要做* ,ai里面怎么扣二维码
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
怎样使用AI写文章:释放创作潜能,提升写作效率
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
为什么越来越多的人选择在知乎发布文章?这里面的机会你可能还没发现!,潍坊关键词排名提升
seo需要了解什么,seo需要学些什么内容 ,ovo ai
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
seo软件是什么职位,seo用的是什么软件 ,ai感知树
seo词库优化,搜索词条优化 ,ai点选择
创作新时代:自动生成文章AI的魅力与未来
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
SEO包含的秘密:让你的网站轻松排上首页,新媒体营销推广方案目录
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
SEO有点:揭秘优化之道,提升网站排名的秘诀,广州抖音seo厂家地址
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
用AI征文工具,轻松创作出精彩文章!
SEO运营是什么职业,seo运营工程师招聘 ,把ai图层改横幅
ChatGPT网络故障报告从协调世界时(UTC)晚上1107左右开始激增,15分钟内引发广泛关注,ai无视进化
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
SEO开发:数字营销的核心驱动力,园区网站建设
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
seo要学什么语言,做seo需要什么语言 ,ai martino
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai