Kotlin练习-快速排序
2017-06-02 22:49
316 查看
Java版本
object QuickSort { fun sort(array: MutableList<Int>): MutableList<Int> { if (array.size == 0 || array.size == 1) return array val flag = array[0] //删除基准元素,如果不删除的话,基准值也会进入左边篮子中,而且永远是第一个位置,第二次开始,所有元素都小于4,就会进入死循环。 array.removeAt(0) val leftArray = mutableListOf<Int>() val rightArray = mutableListOf<Int>() //站队,小于等于基准值的放到左边篮子里,大于基准值放到右边篮子里 array.forEach { if (it <= flag) { leftArray.add(it) } else { rightArray.add(it) } } //递归排序左右两侧数据 val sortedLeftArray = sort(leftArray) val sortedRightArray = sort(rightArray) //排序完成后,组装 val sortedArray = mutableListOf<Int>() sortedLeftArray.forEach { sortedArray.add(it) } sortedArray.add(flag) sortedRightArray.forEach { sortedArray.add(it) } return sortedArray } }
相关文章推荐
- 数据结构练习:快速排序
- 练习《算法导论》之排序:插入排序,归并排序,堆排序,快速排序
- 快速排序和二分查找的练习
- 编程练习:快速排序
- 快速排序——Kotlin、Java实现
- 快速排序练习(二)
- 快速排序反复练习
- 第七章快速排序之“快速插入排序”(练习7.4-5)
- 快速排序和二分查找的练习
- Kotlin练习 之使用Kotlin实现:二分查找,选择排序,冒泡排序,快速排序
- 快速排序练习(一)
- 【编程练习】快速排序,Java和Python实现
- 数据结构练习:快速排序
- Java_冒泡、插入、快速、选择排序
- 快速排序之所有的c/c++的实现
- 快速排序
- 快速排序的性能分析
- 算法分析之——quick-sort快速排序
- 排序算法——快速排序
- 数据结构----快速排序