冒泡排序:
原理:和相邻的数对比,然后排序,最后一趟会将最小或最大排到边边。
例子:
int []numbers={4,5,2,7};
int temp;
for(int i=0;i<numbers.length;i++){
for( int j=i;j<numbers.length;j++){
if(numbers[i]>numbers[j]){
temp=numbers[i];
numbers[i]=numbers[j];
numbers[j]=temp;
}
}
} for(int z=0;z<numbers.length;z++){
System.out.println(numbers[z]);
}
}
选择排序:
原理:每一趟从待排序的数据中选择最小(或最大)的一个数据作为首数据
例子:
public static void main(String[] args) {
// TODO Auto-generated method stub
int []numbers={4,5,2,7,9,6};
int temp;
int k;
for(int i=0;i<numbers.length-1;i++){
k=i;
for(int j=i+1;j<numbers.length;j++){
if(numbers[j]<numbers[k]){
k=j;
}
}
temp=numbers[i];
numbers[i]=numbers[k];
numbers[k]=temp;
}
for(int z=0;z<numbers.length;z++){
System.out.println(numbers[z]);
}
}
}
插入排序:
原理:把n个待排序的数据看成一个有序表和一个无序表,有序表一开始有1个数据,无序表中有n-1个数据;排序过程即每次从无序表中取出第一个数据源,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。
例子:
int []numbers={4,5,2,7,9,6};
int temp;
for(int i = 1; i<numbers.length; i++){
temp = numbers[i]; //temp是作为插入有序表的数
int j = i-1;
while(j>=0 && numbers[j]>temp){//数据后移
numbers[j+1] = numbers[j];
j--;
}
numbers[j+1] = temp;//插入temp
}
for(int z=0;z<numbers.length;z++){//循环打印数据
System.out.println(numbers[z]);
}
}
}