- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常见的排序算法之Java代码解释
一 简要介绍
一般排序均值的是将一个已经无序的序列数据重新排列成有序的
? 常见的排序分为:
? 1 插入类排序
? 主要就是对于一个已经有序的序列中,插入一个新的记录。它包括:直接插入排序,折半插入排序和希尔排序
? 2 交换类排序
? 这类排序的核心就是每次比较都要“交换”,每一趟排序都会发生一系列的“交换”排序,但是每一趟排序都会让一个记录排序到它的最终位置上。它包括:起泡排序,快速排序
? 3 选择类排序
? 顾名思义,这类排序主要就是“选择”,每一趟排序都从一系列数据中选择一个最大或最小的记录,将它放置到第一个或最好一个为位置交换,只有在选择后才交换,比起交换类排序,减少了交换记录的时间。属于它的排序:简单选择排序,堆排序
? 4 归并类排序
? 将两个或两个以上的有序序列合并成一个新的序列
? 5 基数排序
? 主要基于多个关键字排序的。
? 下面针对上面所述的算法,讲解一些常用的java代码写的算法
二 插入类排序之直接插入排序
直接插入排序,一般对于已经有序的队列排序效果好。
基本思想:每趟将一个待排序的关键字按照大小插入到已经排序好的位置上。
算法思路,从后往前先找到要插入的位置,然后所有元素向后移动,将要插入数据插入该文职即可即可。时间复杂度为O(n2),空间复杂度为O(1)
package?sort.algorithm;publicclass?DirectInsertSort {publicstaticvoid?main(String[] args) {// TODO Auto-generated method stubint?data[]={2,6,10,3,9,80,1,16,27,20};int?temp,j;for(int?i=1;idata.length;i++)? ? ? ? ? ? ? ?{? ? ? ? ? ? ? ? ?temp=data[i];? ? ? ? ? ? ? ? ?j=i-1;while(j=0data[j]temp)? ? ? ? ? ? ? ? ?{? ? ? ? ? ? ? ? ? ?data[j+1]=data[j];? ? ? ? ? ? ? ? ? ?j--;? ? ? ? ? ? ? ? ?}? ? ? ? ? ? ? ? ?data[j+1]=temp;? ? ? ? ? ? ? ?}//输出排序好的数据for(int?k=0;kdata.length;k++)? ? ? ? ? ? ? ?{? ? ? ? ? ? ? ?System.out.print(data[k]+ ? ? );? ? ? ? ? ? ? ?}?}}
三?插入类排序之折半插入排序
? 条件:在一个已经有序的队列中,插入一个新的元素
? 折半插入排序记录的比较次数与初始序列无关
? 思想:折半插入就是首先将队列中取最小位置low和最大位置high,然后算出中间位置mid
? 将中间位置mid与待插入的数据data进行比较,
? 如果mid大于data,则就表示插入的数据在mid的左边,high=mid-1;
? 如果mid小于data,则就表示插入的数据在mid的右边,low=mid+1
? ?时间复杂度O(n2),空间复杂度O(1)
package?sort.algorithm;//折半插入排序publicclass?HalfInsertSort {publicstaticvoid?? ?main(String[] args)?{int?data[]={2,6,10,3,9,80,1,16,27,20};//存放临时要插入的元素数据int?temp;int?low,mid,high;for(int?i=1;idata.length;i++)? ? ? ?{? ? ? ? temp=data[i];//在待插入排序的序号之前进行折半插入? ? ? ? low=0;? ? ? ? high=i-1;while(low=high)? ? ? ? {? ? ? ? ? ?mid=(low+high)/2;if(temp data[mid])? ? ? ? ? ?high = mid - 1;else//low=high的时候也就是找到了要插入的位置,//此时进入循环中,将low加1,则就是要插入的位置了? ? ? ? ? ?low = mid + 1;? ? ? ? }//找到了要插入的位置,从该位置一直到插入数据的位置之间数据向后移动?for(int?j = i; j = low + 1; j--)? ? ? ? data[j] = data
您可能关注的文档
- java中不同包之间的调用.docx
- java中几种上传方法介绍、比较.docx
- java中判断是否为汉字.doc
- Java中各个主要包的作用.doc
- Java中多线程原理详解.doc
- java中如何引入htmlparser的方法步骤.docx
- java中对象转型多态抽象类接口笔记.doc
- java中常用关键字总结.docx
- Java中常见的几种运算符.doc
- JAVA中接口的使用实例操作.doc
- 宁夏吴忠市盐池一中学2025届中考历史对点突破模拟试卷含解析.doc
- 2025届浙江省温州市绣山中学中考联考历史试题含解析.doc
- 2025届湖北省黄冈市初级中学中考四模历史试题含解析.doc
- 2025届辽宁沈阳市大东区重点达标名校中考历史模拟试题含解析.doc
- 云南省红河州个旧市2025届中考五模历史试题含解析.doc
- 2025届浙江省绍兴市迪荡新区重点中学中考考前最后一卷历史试卷含解析.doc
- 江苏省苏州市常熟市达标名校2025届中考一模生物试题含解析.doc
- 陕西省西安市西安交通大附属中学2025届中考历史适应性模拟试题含解析.doc
- 浙江省丽水市第四中学2025届中考生物五模试卷含解析.doc
- 山西省运城中学校2025届中考历史考前最后一卷含解析.doc
最近下载
- 智算中心及算力产业集群项目运营管理方案.docx VIP
- 2025安徽芜湖市湾沚区招聘社区工作者11人考试备考题库及答案解析.docx VIP
- 锅炉安装改造维修质量保证体系文件(手册+程序文件+表格+工艺文件汇编)-符合TSG 07-2019特种设备质量保证管理体系.docx
- 甲状腺科普宣教.pptx VIP
- 贵州省2025年高职院校分类考试招生中职生文化综合语文试题答案.docx VIP
- 智算中心及算力产业集群项目节能评估报告.docx VIP
- 甲状腺的科普宣教.pptx VIP
- 高考试题——物理(全国卷)云南.doc VIP
- 智算中心建设可行性分析.docx VIP
- 产前筛查实验室标准操作程序文件.pdf VIP
文档评论(0)