-
Notifications
You must be signed in to change notification settings - Fork 2
Description
package Sort.src.BaseSort;
public class BaseSort {
public void sort(int []a)
{
System.out.println("排序算法");
}
}
package Sort.src.BaseSort;
public class InsertSort extends BaseSort{
public void sort(int []a,int n)
{
for(int i=0;i<n;i++)
{
for(int j=i;j>0;j--)
{
if(a[j]<a[j-1])
{
swap(a,j,j-1);
}
else
break;
}
}
}
public void swap(int []a,int i,int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
package Sort.src.BaseSort;
public class QuickSort extends BaseSort{
public int getElem(int []a,int l,int r)
{
int j=l;
for(int i=l+1;i<=r;i++)
{
if(a[i]<a[j])
{
swap(a,j+1,i);
}
}
return j;
}
public void swap(int []a,int i,int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
public void sort(int []a,int n)
{
int m=getElem(a,0,n-1);
getElem(a,0,m-1);
getElem(a,m+1,n-1);
}
}
package Sort.src.BaseSort;
public class SelectSort extends BaseSort {
public void sort(int []a,int n)
{
for(int i=0;i<n;i++)
{
int min=i;
for(int j=i+1;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
swap(a,i,min);
}
}
public void swap(int []a,int i,int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
package Sort.src.BaseSort;
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
int[] a=new int[10];
Scanner scanner=new Scanner(System.in);
for(int i=0;i<10;i++)
{
a[i]=scanner.nextInt();
}
System.out.println("选择排序:");
SelectSort one=new SelectSort();
one.sort(a,10);
for(int i=0;i<10;i++)
{
System.out.print(a[i]+",");
}
System.out.println();
System.out.println("选择排序:");
InsertSort two=new InsertSort();
two.sort(a,10);
for(int i=0;i<10;i++)
{
System.out.print(a[i]+",");
}
System.out.println();
System.out.println("快速排序:");
QuickSort three=new QuickSort();
three.sort(a,10);
for(int i=0;i<10;i++)
{
System.out.print(a[i]+",");
}
System.out.println();
}
}