排序之冒泡排序

伪代码:

Algorithm Bubble(A,n):
    for i <- n-2 to 0 do
        for j <-0 to i do
            if A[j] > A[j + 1] then
                swap A[j] and A[j+1]

 

算法思想:做多次循环,每次从前往后比较前后两两之间的大小,逆序则交换。(第一个从后往前是因为第一次每一次循环都能将最大的一个值放在最后面的一个位置,因此下一次不需要再对后面的位置进行比较和交换)

java代码:

//冒泡排序
//最好时间复杂度为O(n),最坏为O(n^2),平均为O(n^2)
public class Bubble {
    int[] sort(int[]A,int n){
        for(int i = n-2;i >=0;i--){
            for(int j = 0;j<=i;j++){
                if (A[j] > A[j+1]){
                    int temp = A[j+1];
                    A[j+1] = A[j];
                    A[j] = temp;
                }
            }
        }
        return A;
    }
    void print(int A[],int n){
        int[] B = sort(A,n);
        for (int i = 0;i < n;i ++){
            System.out.print(B[i]+",");
        }
    }
}

 

posted @ 2017-12-26 13:15  leerle  阅读(151)  评论(0)    收藏  举报