冒泡排序和选择排序以及选择排序的优化

本文探讨了冒泡排序的基本原理,它通过相邻元素的两两比较来逐步确定序列的正确顺序。此外,文章还介绍了选择排序,并提供了一段通用的数据交换代码。进一步地,讨论了对选择排序的优化,以提高其效率。
摘要由CSDN通过智能技术生成

       冒泡排序:两个相邻的数据两两相比,如果是从小到大排列,将较大的数据换位到较小数后面,这样第一轮结束,最后一个数据是最大的数据,因为总是把较大的数据换到后面,再进行第二轮,第三轮(此时已经排好序的数据可以不再参与排序,提高效率)......当第二个数据确定时,第一个数据也就确定了,排序结束。大圈套小圈思想,外层循环控制次数,内层循环控制比较的数据。

      选择排序和冒泡会用到数据的位置交换,所以为了提高代码复用性,我们先写一段数据位置交换的代码:

   public static void swap (int[] arr,int a,int b){
		int temp=arr[a];
		arr[a]=arr[b];
		arr[b]=temp;
	}
      以下是冒泡排序;
	public static void chooseMaoPao(int [] arr){
		for (int x=0;x<arr.length-1 ;x++ ) {           //这里 -1 是当第二个数据确定,第一个数据也确定了,可以少比较一次
			for (int y=0;y<arr.length-1-x;y++ ) {  //这里 -x 是已经排过序的数据可以不再参与排序,提高效率,虽然不-x也是可以的 
				if (arr[y]>arr[y+1]) {         //判断两个数据的大小(将较大数换到后面)
					swap(arr,y,y+1);       //调用swap方法完成两个数据交换位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值