美文网首页Kotlin学习kotlin
Android Kotlin(10)之《排序算法_冒泡》

Android Kotlin(10)之《排序算法_冒泡》

作者: 小强彬 | 来源:发表于2021-04-07 16:23 被阅读0次

Android Kotlin第十篇 排序算法_冒泡。已经好几年没有更新文章了,因为生活也因为工作,总之烦心事还是很多。也许我有的地方没有写好,也欢迎大家提出问题,纠正问题。

一、冒泡排序原理

比较相邻的元素。如果第一个比第二个大,就交换他们两个。文字就不描述了,找了一个网上动态图,一看就懂:


冒泡排序_网络图片

二、kotlin冒泡排序公共方法

这里使用了kotlin高阶函数,目的可以使用各种排序方法,不只是数字,也可以字符串长度等,或者自定义比较方式。以此方法可以通用:

    /**
     * 冒泡排序
     *
     * @param array
     * @return
     */
    inline fun <T> sortBubble(array: Array<T>, compare: (T, T) -> Boolean): Array<T> {
        if (array.isEmpty()) {
            return array
        }
        for (i in array.indices) {
            for (j in 0 until array.size - 1 - i) {
                if (compare(array[j + 1], array[j])) {
                    val temp = array[j + 1]
                    array[j + 1] = array[j]
                    array[j] = temp
                }
            }
        }
        return array
    }

在上面,大家可能看到inline,对这里我试过如果不使用内联,效率比内联的会低很多,所以这里推荐使用内联方式。

三、kotlin冒泡排序公共方法使用:

使用方法很简单,就是如下调用方式:


image.png

排序结果:


image.png

代码其实很简单,这里就不上传github,如果上面有错误,或者更好的建议,望评论指出,谢谢!后续还有其他排序方法同步,可以点关注

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • Android Kotlin(10)之《排序算法_冒泡》

    Android Kotlin第十篇 排序算法_冒泡。已经好几年没有更新文章了,因为生活也因为工作,总之烦心事还是很...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 算法理解之排序-冒泡排序

    算法理解之排序-冒泡排序 冒泡排序是一种简单的排序算法, 算法依次走访未排序的元素, 然后将相邻元素依次两两比较,...

  • 常见排序算法之冒泡排序

    常见排序算法之冒泡排序 冒泡排序(Bubble Sort),是一种较简单的排序算法。它重复地走访过要排序的元素列,...

  • 排序系列之四: 冒泡排序法

    Hello,大家好。今天继续给大家讲解排序系列之☞《冒泡排序算法》 冒泡排序(Bubble Sort)...

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • Android 算法之排序算法(冒泡排序)

    冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如...

  • 用 Python 实现十大经典排序算法

    今天,详细的跟大家分享下 10 种经典排序算法。 10种经典排序算法包括冒泡排序、选择排序、快速排序、归并排序、堆...

网友评论

    本文标题:Android Kotlin(10)之《排序算法_冒泡》

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