菜鸟之Java小知识点--冒泡排序详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟之Java小知识点--冒泡排序详解相关的知识,希望对你有一定的参考价值。
冒泡排序额思想简单来说就是:相邻两个数比较,将最大额或者最小的放在最后
下面分析一个数组[21,78,52,18,34,11]进行从大到小排序.
如下图.为第一轮比较的过程,依次比较相邻两个元素,第一轮比较完后将最大的78放在了最后
第一轮:比较了5次,交换 4次
第二轮:比较了4次,交换 3次
第三轮:比较了3次,交换 1次
第四轮:比较了2次,交换 1次
第五轮:比较了1次,交换 1次
统计:6个元素总共比较了5轮,比较了15次,交换 10次
公式:比较轮数=n-1轮,
比较次数=n*(n-1)/2次
上代码
工具类:
package com.darlingPig.utils; /** * 数组工具类 * @author darlingPig * @since 2016-11-19 * */ public class ArrayUtils { /** * 冒泡排序 * * @param arr * @return */ public static int[] sort(int[] arr) { for (int i = arr.length-1; i > 0; i--) { for (int j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } return arr; } }
测试类:
package com.darlingPig.test; import com.darlingPig.utils.ArrayUtils; public class Test { public static void main(String[] args) { //要排序的数组 int[] arr = {12,52,78,18,34,11}; //调用工具类写好的冒泡排序方法,返回一个排好序的数组 arr = ArrayUtils.sort(arr); //遍历数组 for (int i : arr) { System.out.println(i); } } }
本文出自 “12248949” 博客,请务必保留此出处http://12258949.blog.51cto.com/12248949/1874619
以上是关于菜鸟之Java小知识点--冒泡排序详解的主要内容,如果未能解决你的问题,请参考以下文章