java排序算法大全_第1页
java排序算法大全_第2页
java排序算法大全_第3页
java排序算法大全_第4页
java排序算法大全_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java排序算法大全为了便于管理,首先引入了基类。PackagealgorithmsPublicabstractclassSorter publicabstractvoidsort(earray,intfrom,intrlen);Publicfinalvoidsort(Earray)Sort(array,0,array . length);protectedfinalvoidswap(earray,intfrom,intto)etmp=arrayfrom;arrayfrom=arrayto;arrayto=tmp; 1插入排序该算法在数据大小小的情况下效率很高。此算法在每次插入从K 1到K的顺序排列的数组中的适当位置时,插入K从0到N-1以完成排序。Packagealgorithms/* *authoryovn*/publicclassinserorterextendsserter Public void sort (e array,intfrom,intrlen)、Etmp=nullfor(inti=from 1;IfromJ-)If(pareTo(arrayj-1)0)arrayj=arrayj-1;Elsebreakarrayj=tmp;2气泡对齐每当比较数组末尾的两个相邻元素时,将数组I的小气泡放在数组I的位置可能是算法中最简单的排序算法。从I 0到N-1排序完成。(当然,也可以比较从数组开头开始的两个相邻元素,并将I的大气泡放在数组的第n-I位置。从I 0到N-1排序完成。),以获取详细信息Packagealgorithms/* *authoryovn* */publicclassbubblesorterextendssorter PrivatestaticbooleanDWON=truepublicfinalvoidbubable _ down(earray,intfrom,intlen)for(inti=from;二;J-)If (array j)。com Pareto (array j-1) 0Swap(array,j-1,j);publicfinalvoidbubable _ up(earray,intfrom,intrlen)for(inti=from len-1;I=fromI-)for(intj=from;J0)Swap(array,j,j 1);OverridePublic void sort (e array,intfrom,intrlen)、If(DWON)Bubble_down(array,from,len);ElseBubble_up(array,from,len);第三,选择对齐与气泡相比,选择排序不是每次发现相反的顺序时都交换,而是在查找全局I时写下相应元素的位置,最后与第I元素交换,以确保数组的最终顺序。与插入对齐不同,选择对齐小于全局I,并且不调整第一个I元素。Packagealgorithms/* *authoryovn* */publicclasselectorterextendsserter /*(non-Javadoc)* see algorithms . sorter # sort(e,int,int)*/OverridePublic void sort (e array,intfrom,intrlen)、for(inti=0;IextendsSorter/*(non-Javadoc)* ourdeltavaluechoose 2 k-1,2 (k-1)-1,7,3,1。* compleity iso (n 1.5)* see algorithms . sorter # sort(e,int,int)*/OverridePublic void sort (e array,intfrom,intrlen)、/1 .calculatethefirstdeltavalueint value=1;While(值1)* 2=1;delta=(delta 1)/2-1)for(inti=0;Ifromj-=delta)if( Pareto(arrayj-delta)0)arrayj=arrayj-delta;Elsebreakarrayj=tmp;5快速排序快速排序是目前使用最广泛的排序算法。一般分为以下几个步骤:1)选择集线器元素(有一种从我的实施中删除中间元素的简单方法)2)使用此枢轴元素分割阵列时,小于该元素的元素会位于左侧,大于该元素的元素会位于右侧。将轮毂元素放置在适当的位置。3)根据轴心元素最后确定的位置,调用数组的三部分、左、右、轴心元素本身、左、右递归快速排序算法即可。快速排序的核心是分割算法,也可以说是最熟练的部分。Packagealgorithms/* *authoryovn* */publicclassquiksorterextendsserter /*(non-Javadoc)* see algorithms . sorter # sort(e,int,int)*/OverridePublic void sort (e array,intfrom,intrlen)、Q_sort(array,from,from len-1);Privefinalvoidq _ sort (e array,intfrom,int to)转换为from 1(if)返回;Intpivot=select pivot (array,from,to);Pivot=partition (array,from,to,pivot);Q_sort(array,from,pivot-1);Q_sort(array,pivot 1,to);Private int partion (e array,intfrom,int to,intpivot) etmp=arrayPIV ot;arrayPIV ot=arrayto;/nowtospositionisavailableWhile(从!=to)while(from=0)to-;If(fromextendsSorter/*(non-Javadoc)* see algorithms . sorter # sort(e,int,int)*/SuppressWarnings(unchecked )OverridePublic void sort (e array,intfrom,intrlen)、if(len=1)return;etemporary=(e)array . new instance(array0)。get lasts()len);Merge _ sort (array,from,from len-1,temporary);privefinalvoidmerge _ sort(earray,intfrom,int to,e temporary)If(to=from)ReturnIntmiddle=(从到)/2;Merge _ sort (array、from、middle、temporary);Merge _ sort(阵列、middle1、to、temporary);Merge(阵列、from、to、middle、temporary);Priatefinalvoid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论