美文网首页
冒泡排序法

冒泡排序法

作者: and_pu | 来源:发表于2018-03-13 23:07 被阅读24次

    非科班出身的我,只能通过坚持和努力来弥补后天的不足,尽量拉小跟同行的差距,所以我打算在跳槽的黄金季节,开始写作的第一篇,废话不多说,直接进入主题--Java常见的冒泡排序法

    冒泡排序法(Bubble Sort)是所有排序算法中最简单、最基本的一种。冒泡排序法的思路就是交换排序,通过相邻数据的交换来达到排序目的。

    原理:
    1、对数组中的各数据,依次比较相邻的两元素的大小。
    2、如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,变可把最小的数据排好。
    3、再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据的顺序。

    代码:
    void bubbleSort(int[] datas) {
    int temp;
    for (int i = 1; i < datas.length; i++) {
    for (int j = 0; j < datas.length - i; j++) {
    if (datas[j] > datas[j + 1]) {
    temp = datas[j];
    datas[j] = datas[j + 1];
    datas[j + 1] = temp;
    }
    }
    }
    }

    优化方法,当两两比较后没有发生交换,那么在下一次就不用再去比较,所以代码可以优化为
    void bubbleSort(int[] datas) {
    int temp;
    for (int i = 1; i < datas.length; i++) {
    boolean flag=true;
    for (int j = 0; j < datas.length - i; j++) {
    if (datas[j] > datas[j + 1]) {
    flag=false;
    temp = datas[j];
    datas[j] = datas[j + 1];
    datas[j + 1] = temp;
    }
    }
    if ( flag )
    break;
    }
    }
    这里暂时不对时间复杂度和空间复杂度做分析,后续会更新该文章。

    相关文章

      网友评论

          本文标题:冒泡排序法

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