美文网首页
经典算法Java代码实现

经典算法Java代码实现

作者: 手心de温暖 | 来源:发表于2021-08-17 11:05 被阅读0次

1、冒泡排序

public static void bubbleSort(int[] a) {

    int length= a.length;

    for (int i= 0; i< length; i++) {

        boolean hasChange= false;

        for (int j= 0; j< length- 1 - i; j++) {

            if (a[j] > a[j+ 1]) {

                int temp= a[j];

                a[j] = a[j+ 1];

                a[j+ 1] = temp;

                hasChange= true;

}

}

        if (!hasChange) {

            break;

}

}

}

2、插入排序

public static void insertionSort(int[] a) {

    int length= a.length;

    for (int i= 1; i< length; i++) {

        int previous= a[i];

        int j= i- 1;

        for (; j>= 0; j--) {

            if (a[j] > previous) {

                a[j+ 1] = a[j];

            } else {

                break;

}

}

        a[j+ 1] = previous;

}

}

3、快速排序

public static void main(String[] args) {

    int[] a= new int[]{6, 5, 4, 7, 8, 9, 1, 2, 3};

    int length= a.length;

    quickSort(a, 0, length- 1);

    for (int i: a) {

        System.out.println(i);

}

}

public static void quickSort(int[] a, int start, int end) {

    if (start>= end) {

        return;

}

    int partition= partition(a, start, end);

    quickSort(a, start, partition- 1);

    quickSort(a, partition+ 1, end);

}

public static int partition(int[] a, int start, int end) {

    int pivot= a[end];

    int i= start;

    for (int j= start; j< end; j++) {

        if (a[j] < pivot) {

            if (i!= j) {

                swap(a, i, j);

}

            i++;

}

}

    swap(a, i, end);

    return i;

}

public static void swap(int[] a, int i, int j) {

    int temp= a[i];

    a[i] = a[j];

    a[j] = temp;

}

相关文章

网友评论

      本文标题:经典算法Java代码实现

      本文链接:https://www.haomeiwen.com/subject/zsibbltx.html