一,算法原理
冒泡排序是交换排序的一种,原理是通过比较相邻两个元素的大小,如果发现顺序不对,就交换这两个元素的位置。当第一次循环结束时,最大的元素就被筛选出来,然后进入第二次循环,以此类推,直到没有任何一对数据进行比较。
下面看一个案例:
假设有5个数字,依次为:5,4,6,3,1
用冒泡排序的思想来实现的话,过程是这样的:
外层第一次循环:
4,5,6,3,1 -> 4,5,6,3,1 -> 4,5,3,6,1 -> 4,5,3,1,6 找到最大数6
外层第二次循环:
4,5,3,1,6 -> 4,3,5,1,6 -> 4,3,1,5,6 找到倒数第二大的数字5
外层第三次循环:
3,4,1,5,6 -> 3,1,4,5,6
外层第四次循环:
1,3,4,5,6
至此排序完成。
二,Java代码实现
public class Demo1 { public static void main(String[] args) { int[] arr = {5,4,6,3,1}; //创建一个Bubble类 Bubble bubble = new Bubble(); bubble.sort(arr); //输出最后结果 for(int i=0;i<arr1.length;i++) { System.out.print(arr[i]+" "); } } } //冒泡排序 class Bubble{ //排序方法 public void sort(int arr[]) { int temp=0; //排序 //外层循环,表示一共走几次 for(int i=0;i<arr.length-1;i++) { //内层循环,开始逐一比较,如果发现前一个数字比后一个数字大,则交换 for(int j=0;j<arr.length-1-i;j++) { if(arr[j]>arr[j+1]) { //换位 temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } }
运行结果为:1 3 4 5 6
本文出自 “专注Linux” 博客,请务必保留此出处http://hld1992.blog.51cto.com/10543286/1904683
原文地址:http://hld1992.blog.51cto.com/10543286/1904683