如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
java五种排序算法java五种排序算法汇总java的排序算法工具有哪些?这个工具类简单明了地总结了java的快速排序,希尔排序,插入排序,堆排序,归并排序五种排序算法,代码中并没有对这几种排序算法的一个说明,关于思想部分希望在自行查阅相关说明,这里只是对这几种算法进行一个概括,以供大家使用。privatestatic>voidinsertionSort(AnyType[]a,intleft,intright){intj;//记录第一个比tmp小的.元素的后边一位的位置for(intp=left;p<=right;p++){AnyTypetmp=a[p];for(j=p;j>left&&tmp.compareTo(a[j-1])<0;j--){a[j]=a[j-1];}a[j]=tmp;}}publicstatic>voidshellSort(AnyType[]arr){intj;for(intgap=arr.length/2;gap>0;gap/=2){for(inti=gap;i<arr.length;i++){AnyTypetmp=arr[i];for(j=i;j>=gap&&tmp.compareTo(arr[j-gap])<0;j-=gap){arr[j]=arr[j-gap];}arr[j]=tmp;}}}privatestaticintleftChild(inti){returni*2+1;}privatestatic>voidperculateDown(AnyType[]arr,inti,intsize){AnyTypetmp=arr[i];for(intchild;(child=leftChild(i))<size;i=child){if(child!=size-1&&arr[child].compareTo(arr[child+1])<0){child++;}if(tmp.compareTo(arr[child])<0){arr[i]=arr[child];}else{break;}}arr[i]=tmp;}publicstatic>voidheapSort(AnyType[]arr){for(inti=arr.length/2;i>=0;i--){perculateDown(arr,i,arr.length);}for(inti=arr.length-1;i>=0;i--){swapReferences(arr,0,i);perculateDown(arr,0,i);}}privatestatic>voidswapReferences(AnyType[]arr,inti,intj){AnyTypetmp=arr[i];arr[i]=arr[j];arr[j]=tmp;}publicstatic>voidmergeSort(AnyType[]arr){AnyType[]tmp=((AnyType[])newComparable[arr.length]);mergeSort(arr,0,arr.length-1,tmp);}privatestatic>voidmergeSort(AnyType[]arr,intstart,intend,AnyType[]tmp){if(start<end){intmid=(start+end)>>1;mergeSort(arr,start,mid,tmp);mergeSort(arr,mid+1,end,tmp);merge(arr,start,mid,end,tmp);}}privatestatic>voidmerge(AnyType[]arr,intstart,intmid,intend,AnyType[]tmp){inti=start,j=mid+1,k=start;while(i<=mid&&j<=end){if(arr[i].compareTo(arr[j])<0){tmp[k++]=arr[i++];}else{tmp[k++]=arr[j++];}}while(i<=mid){tmp[k++]=arr[i++];}while(j<=end){tmp[k++]=arr[j++];}for(intm=start;m<=end;m++){arr[m]=tmp[m];