集合数组排序之冒泡

来源:互联网 发布:房屋装修效果图软件 编辑:程序博客网 时间:2024/05/18 13:28

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

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

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


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值则是前面集合或数组的最大值。


0 0
原创粉丝点击