java算法之一冒泡排序(交换排序)

来源:互联网 发布:天金加银软件下载 编辑:程序博客网 时间:2024/05/01 19:36

最近重新把算法也同步整理一遍,虽然平时用的少,但至少是一种思想,对于编程的影响还是有的。

冒泡排序算是我大学以来唯一印象深刻且现在还记得的算法,原因因为非常简单却不是经典。

一个存放着无序数字的数组,如何使之进行有规律的排序。于是冒泡算法就提供了两个for循环嵌套(第一个位置和第二个位置的比较,如果大于就对换位置,否则就继续第二个位置和第三个位置进行比较,以此类推,第一轮结束后,最大的数字就已经放置在数组的最后一个位置上了),从而解决了从小到大的排序问题(同理从大到下)。 代码贴如下:

/*
* 冒泡排序
*/
public class BubbleSort {

public void bubble(Integer[] data){    for(int i=0;i<data.length;i++){        for(int j=0;j<data.length-1-i;j++){            if(data[j]>data[j+1]){   //如果后一个数小于前一个数交换                int tmp=data[j];                data[j]=data[j+1];                data[j+1]=tmp;            }        }    }}

}

这样就实现了冒泡排序,不过这种效率不是最好的,时间复杂度是O(n²)。
改进效率请参考快速排序。

1 0
原创粉丝点击