频道栏目
首页 > 资讯 > Java > 正文

java冒泡排序算法实例讲解

18-06-28        来源:[db:作者]  
收藏   我要投稿

冒泡排序

原理 : 依次比较相邻的两个数,将小数放在前面,大数放在后面。

复杂度: 最差–>O(n2)/ 平均–> O(n2) /稳定性–> 稳定

示意图 :

原数组:[10, 3, 2, 1, 0, 5, 4, 7, 8, 9]

第1次:[3, 10, 2, 1, 0, 5, 4, 7, 8, 9]

第2次:[3, 2, 10, 1, 0, 5, 4, 7, 8, 9]

第3次:[2, 3, 1, 10, 0, 5, 4, 7, 8, 9]

第4次:[2, 1, 3, 0, 10, 5, 4, 7, 8, 9]

第5次:[1, 2, 0, 3, 5, 10, 4, 7, 8, 9]

第6次:[1, 0, 2, 3, 5, 4, 10, 7, 8, 9]

第7次:[0, 1, 2, 3, 4, 5, 7, 10, 8, 9]

第8次:[0, 1, 2, 3, 4, 5, 7, 8, 10, 9]

第9次:[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]

我们观察 “10 “ 这个数字是不是就像一个气泡慢慢的浮上来了呢!很形象是吧!

代码

public class BubbleSort {

 public static void bubble_sort(int arr[]) {
  for(int i = 1; i < arr.length; i++) {
int temp = 0;
for(int j = 1; j <= i; j++) {
 if(arr[j-1] > arr[j]) {
  temp = arr[j-1];
  arr[j-1] = arr[j];
  arr[j] = temp;
 }
}
System.out.print("第" + i + "次:");
System.out.println(Arrays.toString(arr));
  }
 }

 public static void main(String[] args) {
  int arr[] = {10, 3, 2, 1, 0, 5, 4, 7, 8, 9};
  // int arr[] = new int[] {10, 3, 2, 1, 0, 5, 4, 7, 8, 9};
  System.out.println("原数组:");
  System.out.println(Arrays.toString(arr));
  BubbleSort.bubble_sort(arr);
  System.out.println("现数组:");
  System.out.println(Arrays.toString(arr));
 }

}

结果

原数组:
[10, 3, 2, 1, 0, 5, 4, 7, 8, 9]
第1次:[3, 10, 2, 1, 0, 5, 4, 7, 8, 9]
第2次:[3, 2, 10, 1, 0, 5, 4, 7, 8, 9]
第3次:[2, 3, 1, 10, 0, 5, 4, 7, 8, 9]
第4次:[2, 1, 3, 0, 10, 5, 4, 7, 8, 9]
第5次:[1, 2, 0, 3, 5, 10, 4, 7, 8, 9]
第6次:[1, 0, 2, 3, 5, 4, 10, 7, 8, 9]
第7次:[0, 1, 2, 3, 4, 5, 7, 10, 8, 9]
第8次:[0, 1, 2, 3, 4, 5, 7, 8, 10, 9]
第9次:[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]
现数组:
[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]

Process finished with exit code 0

附加

数组的初始化:

// 直接初始化
int arr[] = {10, 3, 2, 1, 0, 5, 4, 7, 8, 9};
int arr[] = new int[] {10, 3, 2, 1, 0, 5, 4, 7, 8, 9};

//先声明在初始化
int[] a = new int[2];//需要指定数组的长度
a[0] = 1;
a[1] = 2;
相关TAG标签
上一篇:java集合框架Queue(E)、LinkedList、PriorityQueue的深入理解
下一篇:python 77种常用的基础函数
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站