冒泡排序(Bubble sort)是一种基本的排序算法.它重复的访问要排序的数列,一次比较两个元素,如果
不符合既定的大小关系则交换位置。上述过程是重复进行的,直到没有再能够进行交换的为止(排序
完成)。其特点是越小的元素会经由交换“浮”到数列顶端。
冒泡排序一般的运作过程如下:
1、比较相邻的元素。根据大小关系确定是否交换其位置。
2、对每一对相邻的元素做同样的工作,知道结尾的一对,这一趟下来最后的元素就应该是
最大或最小的了(升序、降序)。
3、针对所有的元素重复以上的步骤,除了上一步的最后一个元素。
4、持续每次对越来越少的元素序列重复上述的步骤,知道没有任何一对元素需要不满足大小关系
为止。
其特点可以观察一份动态图,便于理解:
其排序结果是升序的。每一趟都有较小元素往上“冒”出去,这也是冒泡排序名字的由来。
下面看代码实现,较为简单(java版):
package com.kiritor;
import java.util.Arrays;
/**
* 冒泡排序的简单实现
* 时间复杂度为 O(N^2)
* @author Kiri