Java中的两种常用算法

Java中的两种常用算法

冒泡排序法

每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比较,直到数列的最后一个元素

public class BubbleSort {
	public static void main(String[] args) {
		//声明一个长度为5的数组,并初始化
		int[] arr={9,4,3,8,5};
		int tmp=0;
		//将arr 大->小                                                                                                                                		比较的次数
/*		0: arr[1]>arr[0] arr[2]>arr[1] arr[3]>arr[2] arr[4]>arr[3]          4
		1: arr[1]>arr[0] arr[2]>arr[1] arr[3]>arr[2] 				       3
		2: arr[1]>arr[0] arr[2]>arr[1]								   2
		3: arr[1]>arr[0] 							 			   1*/
		//外循环
		//控制趟数
		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]) {
					tmp=arr[j+1];
					arr[j+1]=arr[j];
					arr[j]=tmp;
				}
			}
		}
		//输出arr
		System.out.println(Arrays.toString(arr));
	}

}

选择排序法

选择排序也是一种简单直观的排序算法,实现原理比较直观易懂:首先在未排序数列中找到最小元素,然后将其与数列的首部元素进行交换,然后,在剩余未排序元素中继续找出最小元素,将其与已排序数列的末尾位置元素交换。以此类推,直至所有元素圴排序完毕。

public class Sel2 {
	public static void main(String[] args) {
		//声明一个长度为5的数组,并初始化
		int[] arr={9,2,8,4,5};
		//存储当前的最大值的下标
		int max=0;
		//存储中间变量
		int tmp=0;
		//外循环
		//趟数
		for (int i = 0; i < arr.length-1; i++) {
			//设置max
			max=i;
			//内循环
			//比较的次数
			for (int j = i+1; j < arr.length; j++) {
				if (arr[j]>arr[max]) {
					max=j;
				}
			}
			//跟当初的约定是否一致
			if (max!=i) {
				tmp=arr[max];
				arr[max]=arr[i];
				arr[i]=tmp;
			}
		}
		//输出arr
		System.out.println(Arrays.toString(arr));
	}
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值