冒泡排序
private static void bubble(int[] a,int length)
{
System.out.println("冒泡排序为:");
int temp;
boolean flag = true;
for(int i=length;i>0;i--)
{
for(int j=1;j<i;j++)
{
if(a[j-1]>a[j])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
flag=false;
}
}
if(flag==true)
{
break;
}
}
}
选择排序
private static void select(int[] a,int length)
{
System.out.println("选择排序为:");
int k,temp;
for(int i=length;i>0;i--)
{
k=0;
for(int j=0;j<i;j++)
{
if(a[j]>a[k])
k=j;
}
temp=a[k];
a[k]=a[i-1];
a[i-1]=temp;
}
}
插入排序
private static void Insert_sort(int[] a,int length)
{
System.out.println("插入排序为:");
int temp,j;
for(int i=1;i<length;i++) {
temp=a[i];
for (j =i-1; j>=0&&temp<a[j]; j--) {
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
快速排序
private static void qucik_sort(int[] a,int left,int right)
{
if(left>=right)
return;
int i=left,j=right;
int temp=a[i];
while(i<j){
while (a[j]>=temp&&i<j)
j--;
if(i<j) {
a[i] = a[j];
i++;
}
while(a[i]<=temp&&i<j)
i++;
if(i<j){
a[j]=a[i];
j--;
}
}
a[i]=temp;
qucik_sort(a,left,i-1);
qucik_sort(a,i+1,right);
}
堆排序
private static void heap_adjust(int[] a,int i,int length)
{
int max_parent=i;
int lchild=i*2+1,rchild=i*2+2;
if(lchild<length&&a[lchild]>a[max_parent])
max_parent=lchild;
if(rchild<length&&a[rchild]>a[max_parent])
max_parent=rchild;
if(max_parent!=i){
int temp;
temp=a[max_parent];
a[max_parent]=a[i];
a[i]=temp;
heap_adjust(a,max_parent,length);
}
}
private static void heap_sort(int[] a,int length)
{
System.out.println("堆排序结果为:");
int temp;
// 建立初始堆
for(int i=length/2-1;i>=0;i--){
heap_adjust(a,i,length);
}
for(int i=length-1;i>=0;i--){
temp=a[i];
a[i]=a[0];
a[0]=temp;
heap_adjust(a,0,i);
}
}