算法研究之插入排序、冒泡排序

1、插入排序:插入是比较简单的一种排序方法,基本思想就是把数据分组两段,一部分是有序,另一部分是待排序的。把有序的数据不断的加大到全数组完成排序。

从左到右将有序数组逐渐增大。

public class Sort {
	public void insertSort(int[] arrays) {
		for (int i = 0; i < arrays.length; i++) {
			for (int j = i; j > 0; j--) {
				if (j == 0)
					continue;
				if (arrays[j] < arrays[j - 1]) {
					sweep(arrays, j, j-1);
				}
			}
		}
	}
	//交换两个数的位置
	private void sweep(int[] arrays,int a,int b){
		int temp=arrays[a];
		arrays[a]=arrays[b];
		arrays[b]=temp;
	}
	public static void main(String[] args) {
		int[] a = { 49, 38, 65,12,45,5 };
		for (int i : a) {
			System.out.print(i+" ");
		}
		System.out.println();
		Sort sort=new Sort();
		sort.insertSort(a);
		for (int i : a) {
			System.out.print(i+" ");
		}
	}
}

2、冒泡排序:把数组中比较大的数不断的冒在前面。一直冒完整个数据就完成排序。

public class Sort {
	public void bubbleSort(int[] arrays) {
		for(int i=0;i<arrays.length;i++){
            for(int j=i+1;j<arrays.length;j++){
                if(arrays[i]>arrays[j]){
                    sweep(arrays, i, j);
                }
            }
        }
	}
	//交换两个数的位置
	private void sweep(int[] arrays,int a,int b){
		int temp=arrays[a];
		arrays[a]=arrays[b];
		arrays[b]=temp;
	}
	public static void main(String[] args) {
		int[] a = { 49, 38, 65,12,45,5 };
		for (int i : a) {
			System.out.print(i+" ");
		}
		System.out.println();
		Sort sort=new Sort();
		sort.bubbleSort(a);
		for (int i : a) {
			System.out.print(i+" ");
		}
	}
}





上一篇:关于系统重装的一件小事


下一篇:在Hive中使用Avro