码迷,mamicode.com
首页 > 编程语言 > 详细

java 3种简单的排序

时间:2015-08-25 21:56:10      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:java   3种简单排序   

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;	
	      }
	    }
	}
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

java 3种简单的排序

标签:java   3种简单排序   

原文地址:http://blog.csdn.net/wangyang55555/article/details/47976617

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!