java数组排序

冒泡排序

public static void main(String[] args){
	int[] arr = {30,18,32,50,92,79,26,77,101,8,3,1,41};
    for (int i = 0; i < arr.length - 1; i++) { // 外层循环控制排序趟数
		for (int j = 0; j < arr.length - i - 1; j++) { // //内层循环控制每一趟排序多少次
			if (arr[j+1] < arr[j]) {
				// 把小的值交换到前面
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	System.out.print("最终排序结果:");
	for(int a = 0; a < arr.length;a++) {
		System.out.print(arr[a] + "\t");
    }
}

选择排序(比冒泡排序运行次数少,更快)

public static void main(String[] args){
	int[] arr = {30,18,32,50,92,79,26,77,101,8,3,1,41};
	
	System.out.println("\n"+"--------------- 从大到小 ---------------");

	arr = toSmall(arr);
	for (int i : arr) {
        System.out.print(i + " ");
    }

    System.out.println("\n"+"--------------- 从小到大 ---------------");
    arr = toBig(arr);
    for (int i : arr) {
		System.out.print(i + " ");
	}
}
// 从大到小
private static int[] toSmall(int[] arr) {
	//遍历数组里除最后一个的其他所有数,因为最后的对象没有与之可以相比较的数
	for(int i = 0; i < arr.length-1; i++) {
		// 遍历数组里没有排序的所有数,并与上一个数进行比较,"j=i+1"因为自身一定等于自身,所以相比没有意义,而前面已经排好序的数,在比较也没有意义
		for(int j = i+1; j < arr.length; j++){
			if(arr[j] > arr[i]) {//交换条件(排序条件)
				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	return arr;
}
// 从小到大
private static int[] toBig(int[] arr) {
	for(int i = 0; i < arr.length-1; i++) {
		for(int j = i+1; j < arr.length; j++){
			if(arr[j] < arr[i]) { 
				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	return arr;
}

学无止境,高山仰止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值