集合数组排序之冒泡

数组排序和集合排序在原理上是一致的,博主看来,集合只是数组的特殊形式。

废话不多说,首先讲一下冒泡的最核心步骤:控制好位置,每次取最值。

怎么理解呢? 我们还是先上代码:


public static void lastBubbleSort(List<Integer> lists, Integer sortType) {
if(lists == null || lists.isEmpty()) {//验证排序内容
return;
}

if(sortType == null) {//验证排序方式
sortType = -1;
}

int length = lists.size();

int temp = null;
for (int i = length - 1; i > 0; i--) {
for(int j = 0; j < i; j++) {//每次内循环将最大值放到栈尾
if(sortType >= 0) {
if(lists.get(i) <= lists.get(j)) {
temp = lists.get(i);
lists.set(i, lists.get(j));
lists.set(j, temp);
}
} else { //每次将最小值放到栈尾
if(lists.get(i) >= lists.get(j)) {
temp = lists.get(i);
lists.set(i, lists.get(j));
lists.set(j, temp);
}
}
}
}
}

外层循环控制比较位置,内循环与外层循环位置的值比较,查找到内循环中最大值,内循环结束后,外循环位置放置的value值则是前面集合或数组的最大值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值