1.冒泡排序
public class TestSort{
public static void main(String args[]){
int a[]={5,4,9,8,7,6,0,1,3,2};
bubbleSort(a); //静态方法中直接通过类名调用静态方法,或者通过对象去调用非静态的方法
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
public static void bubbleSort(int array[]){
int i,j,tmp;
for(i=1;i<array.length-1;i++){
for(j=array.length-1;j>=i;j--){
if(array[j]<array[j-1]){
tmp=array[j];
array[j]=array[j-1];
array[j-1]=tmp;
}
}
}
}
}
2.插入排序
public class TestSort{
public static void main(String args[]){
int array[] = {7,3,19,40,4,7,1};
insertSort(array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
public static void insertSort(int a[]){
if(a!=null){
for(int i=1;i<a.length;i++){
int tmp = a[i],j=i;
while(j>=1&&a[j-1]>tmp){
a[j] = a[j-1];
j--;
}
a[j]=tmp; //每一个a[i]即tmp值,只要是小,就j--,一直把她护送到最小的位置
}
}
}
}
3.选择排序
选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.
public class TestSort{
public static void main(String args[]){
int array[] = {7,3,19,40,4,7,1};
selectSort(array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
public static void selectSort(int a[]){
int minIndex=0;
int temp=0;
if((a==null)||(a.length==0))
return;
for(int i=0;i<a.length-1;i++){
minIndex=i; //将外层循环的下标赋值给临时变量
for(int j=i+1;j<a.length;j++){
if(a[j]<a[minIndex]){
minIndex=j;
}
}
if(minIndex!=i){ //在二层循环退出后,如果临时变量改变,则说明有比当前外层循环位置更小的元素,需将这两个元素交换
temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
}
}
}