java实现冒泡排序法

2017-08-22  本文已影响15人  zengsiyong

插入排序

public class InsertionSort {  
    public static void sort(int data[]) {  
        for (int i = 1; i < data.length; i++) {  
            for (int j = i; j > 0; j--) {  
                if (data[j] < data[j - 1]) {  
                    int temp = data[j];  
                    data[j] = data[j - 1];  
                    data[j - 1] = temp;  }  }   }   }  }  

抽象排序方法

 public static void bubbleSort(int[] arr) {
    int i, j, temp, len = arr.length;
    for (i = 0; i < len - 1; i++)
        for (j = 0; j < len - 1 - i; j++)
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
    }

具体实现且行数最少

import java.util.Arrays;
public class BubbleSort {
    public static void BubbleSort_Method(int[] arr) {
        int temp;//定义一个临时变量
        for(int i=0;i<arr.length-1;i++){//冒泡趟数
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;}}}}
    public static void main(String[] args) {
        int arr[] = new int[]{1,6,2,2,5,10,-1,20};
        BubbleSort.BubbleSort_Method(arr);
        System.out.println(Arrays.toString(arr));}}

时空复杂度

Paste_Image.png

方法一

主函数中通过BubbleSort类带参数的构造函数执行冒泡排序

import java.util.Arrays;
/**
 * 冒泡排序
 * @author zsy
 *
 */
public class BubbleSort {
    public BubbleSort(int[] arr) {
        int temp;//定义一个临时变量
        for(int i=0;i<arr.length-1;i++){//冒泡趟数
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    public static void main(String[] args) {
        int arr[] = new int[]{1,6,2,2,5,10,-1,100};
        BubbleSort bubble = new BubbleSort(arr);
        //输出方法1
        for(int i = 0; i < arr.length; i++){
            System.out.print(arr[i] + " ");
            }   
        //输出方法2
        System.out.println(Arrays.toString(arr));
    }
}

方法二

主函数通过调用BubbleSort类的静态方法执行冒泡排序

import java.util.Arrays;
/**
 * 冒泡排序
 * @author zsy
 *
 */
public class BubbleSort {
    public static void BubbleSort_Method(int[] arr) {
        int temp;//定义一个临时变量
        for(int i=0;i<arr.length-1;i++){//冒泡趟数
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    public static void main(String[] args) {
        int arr[] = new int[]{1,6,2,2,5,10,-1};
        BubbleSort.BubbleSort_Method(arr);
        //输出方法1
        for(int i = 0; i < arr.length; i++){
            System.out.print(arr[i] + " ");
            }   
        //输出方法2
        System.out.println(Arrays.toString(arr));
    }
}

运行结果


Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读