1.归并排序
public class GuiBinSort {
public static void main(String[] args) {
int a[] = {5,4,9,8,7,6,0,1,3,2};
Megry(a, 0, a.length-1);
for (int i : a) {
System.out.print(i+" ");
}
}
public static void Mest(int a[],int l,int mid,int r)
{
int [] L=new int[mid-l+1];
int [] R=new int [r-mid];
int i=0,j=0,k=0;
for(i=0,k=l;i<L.length;i++,k++)
{
L[i]=a[k];
}
for(j=0,k=mid+1;j<R.length;j++,k++)
{
R[j]=a[k];
}
for(i=0,j=0,k=l;i<L.length&&j<R.length;k++)
{
if(L[i]<R[j])
{
a[k]=L[i];
i++;
}
else
{
a[k]=R[j];
j++;
}
}
if(i<L.length)
{
for(j=i;j<L.length;j++,k++)
{
a[k]=L[j];
}
}
if(j<R.length)
{
for(i=j;i<R.length;i++,k++)
{
a[k]=R[i];
}
}
}
public static void Megry(int a[],int l,int r)
{
if(l<r)
{
int mid=(l+r)/2;
Megry(a, l, mid);
Megry(a, mid+1, r);
Mest(a, l ,mid, r);
}
}
}
2.快速排序
public class Quaipai {
public static void main(String[] args) {
int[] arr = { 49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22 };
quaipai(arr, 0, arr.length-1);
for (int i : arr)
{
System.out.print(i+" ");
}
}
public static int getindex(int a[],int low,int high)
{
int tem=a[low];
while(low<high)
{
while(low<high&&a[high]>=tem)
{
high--;
}
a[low]=a[high];
while(low<high&&a[low]<=tem)
{
low++;
}
a[high]=a[low];
}
a[low]=tem;
return low;
}
public static void quaipai(int a[],int low,int high)
{
if(low<high)
{
int index=getindex(a, low, high);
quaipai(a, low, index-1);
quaipai(a, index+1, high);
}
}
}