1.冒泡排序
public class MaxMin{ 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){ //在二层循环退出后,如果临时变量改变,则说明有比当前外层循环位置更小的元素,需将这两个元素交换 tmp=a[i]; a[i]=a[minIndex]; a[minIndex]=temp; } } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-08 04:35:44