冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均比冒泡排序快,且具有稳定性,但速度不及堆排序、快速排序。冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数
测试代码如下:
public class TestBubbleSort {
public static void bubbleSortFirst(int[] data){
for (int i = 1; i < data.length; i++) {
int temp;
for (int j = 0; j < data.length-i; j++) {
if(data[j]>data[j+1]){
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
}
public static void bubbleSortSecond(int[] data){
for (int i = data.length-1;i>0;i--) {
int temp;
boolean isExchanged = false;
for (int j = 0; j < i; j++) {
if(data[j]>data[j+1]){
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
isExchanged = true;
}
}
if(!isExchanged){
return;
}
}
}
public static void main(String[] args) {
int[] a = {2,34,1,56,28,98};
// bubbleSortFirst(a);
bubbleSortSecond(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
}
}
分享到:
相关推荐
java冒泡排序代码,亲测能用,控制台输入数据,自动排序
java 冒泡排序方法,java 冒泡排序方法。
java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档
java冒泡排序集锦方法!所有的方法都有!很不错的!希望对大家有帮助哈哈!
从老师那弄的JAVA冒泡排序的一个讲解,不明白的可以好好看看哈
冒泡排序的详细讲解冒泡排序的详细讲解冒泡排序的详细讲解冒泡排序的详细讲解
冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首...
java 冒泡排序法 java 冒泡排序法
用java 编写的冒泡排序算法,并涵盖了冒泡排序算法的几种优化方式,以及在冒泡排序上的二分查找法。
//测试冒泡排序 /********************* * int[] num = {23,45,76,78,98,54,}; 第一次 23 45 76 78 54 98 第二次 23 45 76 54 78 98 第三次 23 45 54 76 78 98 输出 :23 45 54 76 78 98 当判断为正确时就退出...
JAVA冒泡排序和快速排序算法,符合实验报告要求哦
Java语言实现的冒泡排序算法,代码里头有详细注释,注释皆为简单英文,这个算法比较经典,欢迎新手下载学习使用,欢迎后期的学习交流!
java冒泡排序 java冒泡排序 java冒泡排序
这个程序根据冒泡排序从大到小,从小到大的把数组里的元素进行了排序,程序思想很清晰
java冒泡排序,简洁而优雅的实现了冒泡排序的算法
图解详细分析,java冒泡排序、快速排序、二分查找
一个十分经典的java冒泡排序,界面实现.rar
* 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。
1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...