您的位置:首页 > 编程语言 > Java开发

Java实现冒泡排序

2015-06-08 15:20 471 查看

冒泡排序

一、算法描述

冒泡排序是最简单的一种交换排序,其主要思想是:重复走访要排序数组的元素,将相邻的两个元素作比较,若反序就交换它们的位置,直到数组中再没有可以相互交换位置的两个元素。那么该数组已经是一个排序成功的数组。

下面举例分析:



二、算法分析

冒泡排序算法的执行时间取决于排序的趟数。

最好的情况:

待排数组是正序,那么该算法只需要执行一次,即进行了n-1次的元素间比较,并不需要交换元素的位置。其时间复杂度为:O(n)。

最坏的情况:

待排数组是反序,那么该算法需要执行n-1次,即每一趟排序都只有一个最大元素被移动到数组尾部,其时间复杂度为:O(n²)。

在平均情况下,冒泡排序的时间复杂度与最坏情况的时间复杂度同数量级。

冒泡排序是一种稳定的排序方法。

三、算法实现(主要代码)

for(int i=1;i<array.length;i++){
//比较相邻两个元素,较大的数往后冒泡
for(int j=0;j<array.length-i;j++){
if(array[j]>array[j+1]){
int temp = array[j]; //把第一个元素值保存到临时变量中
array[j] = array[j+1];//把第二个元素值保存到第一个元素单元中
array[j+1] = temp;   //把临时变量保存到第二个元素中
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: