返回

新闻详情

Java培训简述Java的排序有几种方式


来源:上海兄弟连IT培训学校时间:2019/2/27 15:37:46

关于Java开发如今大多数人都已经不在陌生,现在参加Java培训想要成为Java开发工程师的小伙伴也是在不断的增多,本篇文章Java培训小编就和喜欢Java的小伙伴分享一下Java排序有几种方式,下面我们一块来看下Java排序有几种呢。

关于Java排序有很多需要学习的内容,也有很多需要你辨别的内容,今天兄弟连Java培训小编介绍几种Java排序,希望对你的学习有所帮助。

packageorg.rut.util.algorithm.support;

importorg.rut.util.algorithm.SortUtil;

//插入排序:

publicclassInsertSortimplementsSortUtil.Sort{

publicvoidsort(int[]data){

inttemp;

for(inti=1;i

for(intj=i;(j>0)&&(data[j]

SortUtil.swap(data,j,j-1);

}

}

}

}

//冒泡排序:

publicclassBubbleSortimplementsSortUtil.Sort{

publicvoidsort(int[]data){

inttemp;

for(inti=0;i

for(intj=data.length-1;j>i;j--){

if(data[j]

SortUtil.swap(data,j,j-1);

}

}

}

}

}

//选择排序:

publicclassSelectionSortimplementsSortUtil.Sort{

publicvoidsort(int[]data){

inttemp;

for(inti=0;i

intlowIndex=i;

for(intj=data.length-1;j>i;j--){

if(data[j]

lowIndex=j;

}

}

SortUtil.swap(data,i,lowIndex);

}

}

}

Shell排序:

publicclassShellSortimplementsSortUtil.Sort{

publicvoidsort(int[]data){

for(inti=data.length/2;i>2;i/=2){

for(intj=0;j

insertSort(data,j,i);

}

}

insertSort(data,0,1);

}

privatevoidinsertSort(int[]data,intstart,intinc){

inttemp;

for(inti=start+inc;i

for(intj=i;(j>=inc)&&(data[j]

SortUtil.swap(data,j,j-inc);

}

}

}

}

//快速排序:

publicclassQuickSortimplementsSortUtil.Sort{

publicvoidsort(int[]data){

quickSort(data,0,data.length-1);

}

privatevoidquickSort(int[]data,inti,intj){

intpivotIndex=(i+j)/2;

SortUtil.swap(data,pivotIndex,j);

intk=partition(data,i-1,j,data[j]);

SortUtil.swap(data,k,j);

if((k-i)>1)quickSort(data,i,k-1);

if((j-k)>1)quickSort(data,k+1,j);

}

privateintpartition(int[]data,intl,intr,intpivot){

do{

while(data[++l]

while((r!=0)&&data[--r]>pivot);

SortUtil.swap(data,l,r);

}

while(l

SortUtil.swap(data,l,r);

returnl;

}

}

//改进后的快速排序:

publicclassImprovedQuickSortimplementsSortUtil.Sort{

privatestaticintMAX_STACK_SIZE=4096;

privatestaticintTHRESHOLD=10;

publicvoidsort(int[]data){

int[]stack=newint[MAX_STACK_SIZE];

inttop=-1;

intpivot;

intpivotIndex,l,r;

stack[++top]=0;

stack[++top]=data.length-1;

while(top>0){

intj=stack[top--];

inti=stack[top--];

pivotIndex=(i+j)/2;

pivot=data[pivotIndex];

SortUtil.swap(data,pivotIndex,j);

l=i-1;

r=j;

do{

while(data[++l]

while((r!=0)&&(data[--r]>pivot));

SortUtil.swap(data,l,r);

}

while(l

SortUtil.swap(data,l,r);

SortUtil.swap(data,l,j);

if((l-i)>THRESHOLD){

stack[++top]=i;

stack[++top]=l-1;

}

if((j-l)>THRESHOLD){

stack[++top]=l+1;

stack[++top]=j;

}

}

insertSort(data);

}

privatevoidinsertSort(int[]data){

inttemp;

for(inti=1;i

for(intj=i;(j>0)&&(data[j]

SortUtil.swap(data,j,j-1);

}

}

}

}


上一篇:今后Java培训就业前景怎么样?

下一篇:参加Java培训有用吗?以后工资高吗?

  咨询老师  拨打电话  网上报名