Tag: kotlin quicksort

Kotlin:排序| 交换操作的位置

我在Kotlin中实现了Quicksort算法。 为此,我使用types参数和单个函数( sort)创建了一个接口ISort 。 为了排序,我需要交换操作。 我想知道这个交换function的最佳位置是什么。 我的想法: 1)不幸的是,在Kotlin中,不能使接口function得到保护。 因此,每个class级都可以在其实施中看到交换,这并不太好(尽管也不算太差,我同意)。 2)把它放在QuickSort实现中更糟,因为可能有几个需要交换function的ISort接口的实现。 3)我的下一个想法是创建一个单例对象,但Kotlin允许具有types参数的对象。 这里是接口定义: interface ISort { fun sort(toSort: MutableList): MutableList // 1) Putting swap here has a too high visibility } 这里是QuickSort类的框架: class QuickSort : ISort { override fun sort(toSort: MutableList): MutableList { doQuickSort(toSort) // Internally uses swap return toSort } // 2) Putting swap here […]

Kotlin:排序| 交换操作的位置

我在Kotlin中实现了Quicksort算法。 为此,我使用类型参数和单个函数( sort)创建了一个接口ISort 。 为了排序,我需要交换操作。 我想知道这个交换功能的最佳位置是什么。 我的想法: 1)不幸的是,在Kotlin中,不能使接口功能得到保护。 因此,每个班级都可以在其实施中看到交换,这并不太好(尽管也不算太差,我同意)。 2)把它放在QuickSort实现中更糟,因为可能有几个需要交换功能的ISort接口的实现。 3)我的下一个想法是创建一个单例对象,但Kotlin允许具有类型参数的对象。 这里是接口定义: interface ISort<T> { fun sort(toSort: MutableList<T>): MutableList<T> // 1) Putting swap here has a too high visibility } 这里是QuickSort类的框架: class QuickSort<T> : ISort<T> { override fun sort(toSort: MutableList<T>): MutableList<T> { doQuickSort(toSort) // Internally uses swap return toSort } // 2) Putting swap here […]