欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

冒泡排序

程序员文章站 2022-05-20 21:35:04
...

1.算法定义

     将序列中的元素两两比较,如果不相等,就交换,以此类推,共比较n轮

2.示例

    int str={18,8,15,9,5,3,8,1} 通过冒泡排序按从小到大升序排列

    第一轮结果:8,15,9,5,3,8,1,18  

    第二轮结果:8,9,5,3,8,1,15,18     

   以此类推:每次去i={1,,n-2}位置所在的元素跟(0,n-2-i)元素比较

  每次比较完后,大的元素每次都往上冒,冒泡算法因此得名

3.时间复杂度

   最好的时间o(n)=n,这样的情况是已经拍好序了

    最坏的情况o(n)=n^2,

3.java

  

import java.util.Comparator;
import java.util.stream.Stream;

public class BubbleSort {

    public static <T extends Comparable<T>> T[] bubbleSort(T[] arr) {
        for (int i = 1; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j].compareTo(arr[j + 1]) > 0) {
                    T temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args) {
        Integer[] elements = {8, 15, 9, 3, 8, 1, 18};
        elements = bubbleSort(elements);
        for (int i = 0; i < elements.length; i++) {
            System.out.println(elements[i]);
        }
    }
}

 

 

 

相关标签: 数学与算法