Java 冒泡排序

面试时,经常会有一个关于冒泡排序的题目..

冒泡程序:要真正了解一个程序算法..

 

要两层循环控制..

 

比如一个int数组. 外层循环控制.int数组里面的个数..  内存循环取出int数组中索引为0.1.2.3. 等等. 外层循环循环一次.内存循环则 ,则要循环..int数组中数据个数的次数..

 

然后,每次从外层循环中拿出一个值, 放在内存循环里面比较..如果大于 ,则会把第一个值 与 第二个值进行交换.然后.放在后面..

以此类推.

package pack.java.thread.javabasic;
/**
 * 冒泡排序;
 * @author Administrator
 *
 */
public class MaoPaoSort {
	
	/**
	 * 升序;
	 * @param data
	 */
	private void sortAsc(int[] data){
		if(data.length>0){
			int temp = 0;
			for(int i = 0 ;i<data.length;i++){
				for(int j = i;j<data.length;j++){
					if(data[i]>data[j]){
						temp = data[i];
						data[i] = data[j];
						data[j] = temp;
					}
				}
			}
		}
	}
	
	/**
	 * 降序
	 * @param data
	 */
	private void sortDesc(int[] data){
		if(data.length>0){
			int temp = 0;
			for(int i = 0 ;i <data.length;i++){
				for(int j = i;j<data.length;j++){
					if(data[i] < data[j]){
						temp = data[i];
						data[i] = data[j];
						data[j] = temp;
					}
				}
			}
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int dataArray[] = new int[]{10,2,3,6,1,5,8};
		System.out.println("排序前:");
		for(int d:dataArray){
			System.out.println(d);
		}
		System.out.println("\n");
		
		System.out.println("升序排序后:");
		MaoPaoSort maoPaoSort = new MaoPaoSort();
		maoPaoSort.sortAsc(dataArray);
		
		for(int d:dataArray){
			System.out.println(d);
		}
		
		System.out.println("\n降序排序后:");
		maoPaoSort.sortDesc(dataArray);
		for(int d:dataArray){
			System.out.println(d);
		}
	}
}

 

你可能感兴趣的:(java,thread,算法,面试,J#)