[置顶] Java排序再巩固--BubbleSort
16lz
2021-01-22
提到冒泡排序,不知道大家还记得下面链接中的排序视频:冒泡排序,这个简单有趣的小视频有没有勾起内心深处的一点点回忆??下面小编就带着大家一起再来回顾和巩固这个经典的排序!
提起冒泡排序,也许会有人说这个太简单,由于它只适合数据规模很小的情况,而且效率也比较低,所以没有必要提起,但是它作为我们的Java排序入门的经典,需要我们去重视它,巩固它;
这种排序算法,和它的名字一样的原理,每次的循环都要把大/小的元素“冒”出去,所以我们可以把这个原理总结成下面的这句话:
升序:每一轮都会产生一个较大的数;第一轮循环执行完之后会产生一个最大的数并将最大的排到最后一个位置上;
降序:每一轮都会产生一个较大的数,第一轮会将最小的放到最后一个位置上;
了解了原理之后,我们一起来看代码的实现(比较的数为:4,7,8,9,3,2):
<span style="font-size:18px;">/**根据代码中的逻辑,我们可以将循环的执行情况总结为以下:
* 一共两层循环,内部循环控制的是比较的下标
* @author root
*
*/
public class BubbleSortTest {
public static void bubbleSort(int[] array){
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-i-1; j++) {
if (array[j] > array[j+1]) {
//如果前者大于后者二者交换位置
int temp = array[j];
array[j]=array[j+1];
array[j+1] =temp;
}
}
System.out.println("第" + (i+1)+"趟排序");
for (int o = 0; o < array.length; o++) {
System.out.print(array[o] +" ");
}
System.out.println();
}
}
public static void main(String[] args) {
int [] array = {4,7,8,9,3,2};
bubbleSort(array);
}
}
</span>
i = 0
j = 0
j = 1
j = 2
j = 3
j = 4
i = 1
j = 0
j =1
j = 2
j = 3
i = 2
j = 0
j =1
j = 2
i = 3
j = 0
j =1
i = 4
j = 0
执行结果为:
上面就是小编关于冒泡排序的所有总结,不知道有没有帮大家回顾到冒泡排序这个经典中的经典呢?如果有更好的见解和建议,请大家留言哦!
更多相关文章
- Google Play服务API(位置服务)是否需要数据计划?
- 路径提供者文档目录是一个安全的位置吗?
- 设置自定义Dialog的大小和位置
- 以编程方式将位置模式更改为高精度Android
- 【Based Android】android通过criteria选择合适的地理位置服务
- Settings点击Location(位置)后右上角的开关button不会消失
- 在android上滚动时,列表视图的位置会发生变化
- DialogFragment自定义dialog的位置和大小
- android里通过什么什么事件可以拿到由于click后的EditText的光标