冒泡排序

原创 2012年03月26日 15:17:39

思路为相邻两个依次比较,

Step-by-step example

Let us take the array of numbers "5 1 4 2 8", and sort the array from lowest number to greatest number using bubble sort algorithm. In each step, elements written in bold are being compared. Three passes will be required.

First Pass:
( 5 1 4 2 8 ) \to ( 1 5 4 2 8 ), Here, algorithm compares the first two elements, and swaps them.
( 1 5 4 2 8 ) \to ( 1 4 5 2 8 ), Swap since 5 > 4
( 1 4 5 2 8 ) \to ( 1 4 2 5 8 ), Swap since 5 > 2
( 1 4 2 5 8 ) \to ( 1 4 2 5 8 ), Now, since these elements are already in order (8 > 5), algorithm does not swap them.
Second Pass:
( 1 4 2 5 8 ) \to ( 1 4 2 5 8 )
( 1 4 2 5 8 ) \to ( 1 2 4 5 8 ), Swap since 4 > 2
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
Now, the array is already sorted, but our algorithm does not know if it is completed. The algorithm needs one whole pass without any swap to know it is sorted.
Third Pass:
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )

代码实现如下:

public static void bubbleSort(int [] a){
		for(int i = 0;i<a.length - 1;i++){
			boolean swap = false;
			for(int j = 1;j<a.length -i ;j++){
				if(a[j-1] > a[j]){
					int temp = a[j - 1];
					a[j - 1] = a[j];
					a[j] = temp;
					swap = true;
				}		
			}
			if(swap == false){
				System.out.println("break");
				break;
			}
		}
		
		for(int i:a){
			System.out.print(i + "  ");
		}
	}


 

自己写的冒泡排序算法

  • 2017年12月07日 14:25
  • 2KB
  • 下载

冒泡排序以及二分法查询

  • 2017年11月09日 23:15
  • 275B
  • 下载

用PHP如何实现冒泡排序

1、首先我们必须弄清楚什么是冒泡排序,不理解冒泡排序的原理,我们就无法写出代码。 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比...

冒泡排序VB版

  • 2015年03月28日 21:43
  • 27KB
  • 下载

vs2010 冒泡排序

  • 2015年05月10日 15:48
  • 1.09MB
  • 下载

第十五周项目一 - 验证算法之直接插入、希尔、冒泡排序

【项目1 - 验证算法(1)】             问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过...

二分查找算法和冒泡排序算法

  • 2015年04月22日 11:27
  • 942KB
  • 下载

奇偶冒泡排序

  • 2016年03月30日 22:08
  • 1KB
  • 下载

第十五周项目1-验证算法-冒泡排序

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 ...

冒泡排序C语言

  • 2016年02月18日 18:57
  • 652B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:冒泡排序
举报原因:
原因补充:

(最多只允许输入30个字)