冒泡排序以及优化

#冒泡排序以及优化
Java实现冒泡排序算法
冒泡排序算法类似于将一排人从高到低或者从低到高排序。
假设从低到高排序:
一、从排头开始1号和2号人相比,若1号高于2号就交换位置,否则不要交换位置。
二、2号和3号相比重复步骤一的比较。
三、一直重复步骤一和步骤二直到比较到最后一个人。
执行完一次以上三步的时候,就能将最高的一个人排到最后的位置。
再执行一次步骤一、二和三,就能将第二高的人排到倒数第二的位置。
若有n个人排序执行n次即可将所有人排好。
代码实现:

package HLJuniversity.RG.Learn.practice2;
import java.util.Arrays;

/**
 * 冒泡排序以及优化
 * 
 * @author RG
 *
 */
public class LRank_TestBubbleSort {
	// 主函数入口
	public static void main(String[] args) {
		int[] LRank_values = { 100, 1, 11, 2, 10, 0, 7, 4, 5, 8 };// 定义一个整型数组。
		LRank_values = LRank_Rank2(LRank_values);
		System.out.println(Arrays.toString(LRank_values));

	}
	// 排序方法  没有优化
	public static int[] LRank_Rank(int[] LRank_a) {
		int LRank_help = 0;
		for (int i = 0; i <= LRank_a.length - 1; i++) {
			for (int j = 0; j <= LRank_a.length - 2; j++) {
				if (LRank_a[j] > LRank_a[j + 1]) {// 如果前面一个数大于后面一个数就交换位置
					LRank_help = LRank_a[j];
					LRank_a[j] = LRank_a[j + 1];
					LRank_a[j + 1] = LRank_help;
				}
			}
		}
		return LRank_a;
	}
	// 排序方法  有优化1
	public static int[] LRank_Rank1(int[] LRank_a) {
		int LRank_help = 0;
		for (int i = 0; i <= LRank_a.length - 1; i++) {
			for (int j = 0; j <= LRank_a.length - 2-i; j++) {
				//执行完 外层i次循环后LRank_a.length - 2-i后的数不需要再次排序
				if (LRank_a[j] > LRank_a[j + 1]) {// 如果前面一个数大于后面一个数就交换位置
					LRank_help = LRank_a[j];
					LRank_a[j] = LRank_a[j + 1];
					LRank_a[j + 1] = LRank_help;
				}
			}
		}
		return LRank_a;
	}
	// 排序方法  在优化1的基础上再优化
	public static int[] LRank_Rank2(int[] LRank_a) {
		int LRank_help = 0;
		for (int i = 0; i <= LRank_a.length - 1; i++) {
			boolean LRank_judge = true;
			for (int j = 0; j <= LRank_a.length - 2-i; j++) {
				if (LRank_a[j] > LRank_a[j + 1]) {// 如果前面一个数大于后面一个数就交换位置
					LRank_judge = false;// 只要一执行内层j的循环的if语句就会将LRank_judge设置为false
					LRank_help = LRank_a[j];
					LRank_a[j] = LRank_a[j + 1];
					LRank_a[j + 1] = LRank_help;
				}
			}
			if(LRank_judge==true) {
				break;
			}
			/*在外层循环第i次中 若整个内层循环没有执行if (LRank_a[j] > LRank_a[j + 1])里面的语句
			 * 则可以认为已经排好顺序
			 */
		}
		return LRank_a;
	}

}

若要粘贴代码,请不要粘贴
package HLJuniversity.RG.Learn.practice2;
这是包的位置每个人设置的都不一样。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值