`

java 排序算法冒泡排序、选择排序、插入排序

阅读更多
Java几种常见的排序冒泡排序、选择排序、插入排序
public class Sort {

	//冒泡排序
	public int[] BubbleSort(int[] a){
		int length=a.length-1;
		int t;
		for(int i=0;i<=length;i++){
			for(int j=0;j<length;j++){
				if(a[j+1]<=a[j]){
				
					t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
					       
				}
			}
			
		}
		
		return a;
	}
	
	//选择排序
	public int[] selectSort(int[] a){
		int length=a.length-1;
        int min,k,t;
        for(int i=0;i<=length;i++){   
      	  min=a[i]; k=i;
      	for(int j=i+1;j<=length;j++){
      		if(a[j]<min){
      			k=j;
      			min=a[j];
      		}
      	}
      	if(k!=i){
      		t=a[k];
      		a[k]=a[i];
      		a[i]=t;
      	    }  
        }
        
        return a;
	}
	
	//插入排序
	public int[] insertSort(int[] a){
		int length=a.length;
		int t;
		for(int i=1;i<length;i++){

			for(int j=i;j>0;j--){
				if(a[j]<a[j-1]){
				t=a[j];
				a[j]=a[j-1];
				a[j-1]=t;
				}
				else
					break;
			}
		}
		return a;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
     
		int[] a={9,6,7,2,8,1};
		
		Sort s=new Sort();
		
		//测试冒泡排序
		//s.BubbleSort(a);
		
		//测试选择排序
		//s.selectSort(a);
		
		//测试插入排序
		s.insertSort(a);
		
		for(int i=0;i<a.length;i++){
       	 System.out.println(a[i]);	 
        }
	}

}
冒泡排序时间复杂度:o(n^2),是稳定的排序;选择排序时间复杂度:o(n^2),是不稳定的排序;插入排序时间复杂度:o(n^2),是稳定的排序;相比较冒泡排序和插入排序比选择排序稳定,优于选择排序。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics