3种O(n∧2)级别的排序,选择排序、冒泡排序、插入排序
public class Sort {
private void swap(int[] array,int i,int j){
int var;
var =array[i];
array[i]=array[j];
array[j]=var;
}
//选择排序
//依次选择出最小或最大放入对应的位置
public void slectSort(int[] array){
for (int i = 0; i <array.length ; i++) {
int min=array[i];
int index=i;
for (int j = i+1; j <array.length ; j++) {
if(array[j]<min){
min=array[j];
index=j;
}
}
swap(array,i,index);
}
print(array);
}
//冒泡排序
//只比较未排序部分
//比较相邻位置元素大小,交换位置,依次按照大小排序
public void maopaoSort(int[] array){
for (int i = 0; i <array.length ; i++) {
for (int j = array.length-1; j>i; j--) {
if(array[j]<array[j-1]){
swap(array,j,j-1);
}
}
}
print(array);
}
//插入排序
//将元素插入到有序数组中
public void insertSort(int[] array){
for (int i = 0; i <array.length ; i++) {
for (int j = i; j >0 ; j--) {
if(array[j]<array[j-1]){
swap(array,j,j-1);
}else{
continue;
}
}
}
print(array);
}
public void print(int[] array){
for (int i = 0; i <array.length ; i++) {
System.out.print(array[i]+" ");
}
}
public static void main(String[] arges){
Sort s=new Sort();
int[] array={5,8,6,2,4,3,7,9};
// s.slectSort(array);
// s.maopaoSort(array);
// s.insertSort(array);
}
}