美文网首页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)之《排序算法_冒泡》

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