1.冒泡排序
public void mpsort(int[]arr)
{
for (int i=0;i<arr.length;i++)
{
for (int j=0;j<arr.length-1-i;j++)
{
if (arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=arr[j];
}
}
}
}
2.插入排序
public void crsort(int[] arr)
{
for(int i=1;i<arr.length;i++)
{
int temp=arr[i];
int left=i-1;
while (left>=0&&arr[left]>temp)
{
arr[left+1]=arr[left];
left--;
}
arr[left+1]=temp;
}
}
3.选择排序
public void xzsort(int[] arr)
{
for (int i=0;i<arr.length;i++)
{
int temp=i;
for (int j=i+1;j<arr.length;j++)
{
if (arr[temp]<arr[j])
{
temp=j;
}
}
int l=arr[temp];
arr[temp]=arr[i];
arr[temp]=l;
}
}
4.快速排序
public void qsort(int[] arr,int l,int r)
{
if (l<r)
{
int left=l;
int right=r;
int temp=arr[left];
while (left<right&&arr[right]>=temp)
{
right--;
}
arr[left]=arr[right];
left++;
while (left<right&&arr[left]<temp)
{
left++;
}
arr[right]=arr[left];
right--;
qsort(arr,l,left-1);
qsort(arr,left+1,r);
}
}
5.堆排序
public void heapsort(int [] arr)
{
for (int i=(arr.length-1)/2-1;i>=0;i--)
{
maxheap(arr,i,arr.length);
}
for (int j=arr.length-1;j>0;j--)
{
int temp=arr[0];
arr[0]=arr[j];
arr[j]=temp;
maxheap(arr,0,j);
}
}
public void maxheap(int[] arr,int i,int length)
{
int temp=arr[i];
for (int n=i*2+1;n<length;n=n*2+1 )
{
if (n+1<length&&arr[n]<arr[n+1])
{
n=n+1;
}
if (arr[n]>temp)
{
arr[i]=arr[n];
i=n;
}
else
{
break;
}
}
arr[i]=temp;
}