几种排序算法java实现
2021-03-01 07:28
标签:length oid 排序算法 实现 归并 r++ java实现 for == 几种排序算法java实现 标签:length oid 排序算法 实现 归并 r++ java实现 for == 原文地址:https://www.cnblogs.com/MuiseSim/p/14448812.html1.选择排序
public void selectSort(int a[]){
for(int i=0;i
2.插入排序
public void insertSort(int[] a){
for(int i=1;i0&&cur
3.归并排序
public int[] mergeSort(int a[]){
int l=0,r=a.length-1,m=(l+r)/2;
if(l==r) return a;
int[] sub1=Arrays.copyOfRange(a,l,m+1);
int[] sub2=Arrays.copyOfRange(a,m+1,r+1);
sub1=mergeSort(sub1);
sub2=mergeSort(sub2);
a=merge(sub1,sub2);
return a;
}
public int[] merge(int[] a,int[] b){
int[] res=new int[a.length+b.length];
int i=0,j=0,r=0;
while(i
4.快排
public void quickSort(int[] a,int l,int r){
if(l>=r) return;
int mid=move(a,l,r);
quickSort(a,l,mid-1);
quickSort(a,mid+1,r);
}
public int move(int[] a,int l,int r){
int base=a[l],left=l;
while(l!=r){
while(l