Java冒泡排序简易版(原创)

13 篇文章 0 订阅
8 篇文章 0 订阅
/**
 * @author shany
 * @date 2018年9月12日 上午10:33:58 
 * @version V1.0  
 */
package shany;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author Administrator
 *
 */
public class Mppx {
	// 用于存储运算结果的list数据
	static List<Integer> list = new ArrayList<Integer>();

	// 算法核心
	public List<Integer> core(List<Integer> list1) {
		if (list1.size() == 0)
			return null;
		else {
			// 当list为null时,给list备份
			if (list == null || list.size() == 0) {
				list = new ArrayList<Integer>(list1);
			}
			// 冒泡循环排序
			for (int i = 0; i < list1.size() - 1; i++) {
				for (int j = 0; j < list.size() - i - 1; j++) {
					if (list.get(j) > list.get(j + 1)) {
						// 两个数据位置互换
						Integer temp = list1.get(j + 1);
						list1.remove(j + 1);
						list1.add(j, temp);
						// 对list进行备份
						list = list1;
						// 输出本次循环后的结果
						System.out.println(Arrays.toString(list.toArray()));
					}
				}
			}
			return list;
		}
	}

	public static void main(String[] args) {
		Integer aa[] = { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 };
		Mppx m = new Mppx();
		m.core(new ArrayList<Integer>(Arrays.asList(aa)));
		System.out.println("最后排序结果");
		System.out.println(Arrays.toString(list.toArray()));
	}
}

运行结果:

[3, 38, 44, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 47, 36, 26, 27, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 47, 26, 27, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 47, 27, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 47, 2, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 2, 47, 46, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 2, 46, 47, 4, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 2, 46, 4, 47, 19, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 2, 46, 4, 19, 47, 50, 48]
[3, 38, 5, 44, 15, 36, 26, 27, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 44, 15, 36, 26, 27, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 44, 36, 26, 27, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 44, 26, 27, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 26, 44, 27, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 26, 27, 44, 2, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 26, 27, 2, 44, 46, 4, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 26, 27, 2, 44, 4, 46, 19, 47, 48, 50]
[3, 5, 38, 15, 36, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 38, 36, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 38, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 26, 38, 27, 2, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 26, 27, 38, 2, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 26, 27, 2, 38, 44, 4, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 26, 27, 2, 38, 4, 44, 19, 46, 47, 48, 50]
[3, 5, 15, 36, 26, 27, 2, 38, 4, 19, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 36, 27, 2, 38, 4, 19, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 27, 36, 2, 38, 4, 19, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 27, 2, 36, 38, 4, 19, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 27, 2, 36, 4, 38, 19, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 27, 2, 36, 4, 19, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 2, 27, 36, 4, 19, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 2, 27, 4, 36, 19, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 26, 2, 27, 4, 19, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 2, 26, 27, 4, 19, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 2, 26, 4, 27, 19, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 15, 2, 26, 4, 19, 27, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 2, 15, 26, 4, 19, 27, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 2, 15, 4, 26, 19, 27, 36, 38, 44, 46, 47, 48, 50]
[3, 5, 2, 15, 4, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
[3, 2, 5, 15, 4, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
[3, 2, 5, 4, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
[2, 3, 5, 4, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
最后排序结果
[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值