Java排序

 

	//插入排序
	public void insertList(int[] obj){
		int m = 0;
		int j;
		for(int i=1;i<obj.length;i++){
			m = obj[i];
			for(j=i-1;j>=0&&m<obj[j];j--){
				obj[j+1] = obj[j]; 
			}
			obj[j+1] = m;
		}
		for(int y=0;y<obj.length;y++){
			System.out.println(obj[y]);
		}
	}
 

 

	//冒泡排序
	public void popList(int[] obj){
		int m = 0;
		int t = 0;
		for(int j=obj.length-1;j>=1;){
			for(int i=0;i<j;i++){
				if(obj[i]>obj[i+1]){
					m = obj[i+1];
					obj[i+1] = obj[i];
					obj[i] = m;
					t = i;
				}
			}
			System.out.println("--------"+j);
			j = t;
			
		}
			for(int y=0;y<obj.length;y++){
				System.out.println(obj[y]);
			}
	}

  //选择排序

 

	public void selectList(int[] obj){
		int i,j,k,t;
		for(i=0;i<obj.length;i++){
			k = i;
			for(j=i+1;j<obj.length;j++){
				if(obj[k]>obj[j]){
					k = j;
				}
			}
			t = obj[i];
			obj[i] = obj[k];
			obj[k] = t;
		}
		for(int y=0;y<obj.length;y++){
			System.out.println(obj[y]);
		}
	}

 

 

	//快速排序	快速排序:从两端。。。。。
	public void quickList(int[] obj,int low,int top){
		int i,j,t;
		if(low<top){
			i = low;
			j = top;
			t = obj[low];
			while(i!=j){
				while(i<j&&obj[j]>t){
					j--;
				}
				if(i<j){
					obj[i++] = obj[j];
				}
				while(i<j&&obj[i]<t){
					i++;
				}
				if(i<j){
					obj[j--] = obj[i];
				}
			}
			obj[i] = t;
			quickList(obj,low,i-1);
			quickList(obj,i+1,top);
		}
		for(int y=0;y<obj.length;y++){
			System.out.println(obj[y]);
		}
	}
 

 

 

	//二分查找法,要求:顺序存储,且已经排好序
	public void bisect(int[] obj,int a){
		int i,j,t;
		i = 0;
		j = obj.length - 1;
		while(i<=j){
			t = (i + j) / 2;
			if(a>obj[t]){
				i = t + 1;
			}else{
				j = t - 1;
			}
		}
	}
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java排序)