在Java中,简单排序主要有四种,顺序排序,插入排序,选择排序,冒泡排序,现在将其算法粘贴如下:
public class Arrays {
public static void main(String[] args) {
int a[]=new int[]{7,6,5,4,3,2,1};
// insertSort(a);
// bubbleSort(a);
selectedSort(a);
print(a);
}
public static void print(int a[]){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
public static void bubbleSort(int a[]){//冒泡排序
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
public static void selectedSort(int a[]){//选择排序
for(int i=0;i<a.length-1;i++){//最多有a.length-1趟排序
int min=i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min=j;
}
}
int temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
public static void insertSort(int a[]){//插入排序,只能采用覆盖的方法
int i,j;
for(i=1;i<a.length;i++){
int temp=a[i];
for(j=i;j>0;j--){
if(a[j-1]>temp){
a[j]=a[j-1];
}
}
a[j]=temp;
}
}
}
三种简单排序分析:
冒泡排序:最为简单,但是在一般情况下,效率最低;
插入排序:一般情况下,在这三种排序中效率最高;
选择排序:相对冒泡排序来说,降低了交换的次数;