`

java 实现 排序方法

阅读更多
一.冒泡排序
冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。
public class BubbleSort {
	public static void sort(int[] date) {
		int temp;
		for (int i = 0; i < date.length; i++) {
			for (int j = date.length - 1; j > i; j--) {
				if(date[i]>date[j]){
					temp = date[i];
					date[i]=date[j];
					date[j]=temp;
				}
			}
		}
	}
	public static void main(String[] args) {
		int[] a ={1,4,5,3,9,22,22,34,6};
		sort(a);
		for(int a1 : a){
			System.out.print(a1+"\t");
		}
	}
}


二.选择排序
选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
	public static void sort(int[] date){
		int max = 0;
		int tmp = 0;
		for(int i = 0; i<date.length; i++){
			max = i;
			for(int j = i+1; j<date.length; j++){
				if(date[max]<date[j]){
					max = j;
				}
			}
			if(max!=i){
				tmp = date[i];
				date[i] = date[max];
				date[max]=tmp;
			}
		}
	}
	public static void main(String[] args) {
		int[] a ={1,4,5,3,9,22,22,34,6};
		sort(a);
		for(int a1 : a){
			System.out.print(a1+"\t");
		}
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics