快速排序的Java和Scala实现
2017-08-28 18:16
253 查看
java代码:
import java.util.Arrays; /** * @author bin.zhang * @version 2017年8月28日 下午2:43:10 */ public class QuickSort { /** * @author bin.zhang * @param args */ public static void main(String[] args) { int[] arr = { 7, 6, 9, 6, 2, 7, 0, 2 }; System.out.println("排序前:" + Arrays.toString(arr)); sort(arr, 0, arr.length - 1); System.out.println("排序后:" + Arrays.toString(arr)); } /** * * @author bin.zhang * @param arr * @param start * @param end * @return idx */ public static int partition(int[] arr, int start, int end) { int base = arr[start]; while (start < end) { while (arr[end] >= base && start < end) { end--; } arr[start] = arr[end]; while (arr[start] <= base && start < end) { start++; } arr[end] = arr[start]; } arr[start] = base; return start; } /** * @author bin.zhang * @param arr * @param start * @param end */ private static void sort(int[] arr, int start, int end) { if (start >= end) { return; } int idx = partition(arr, start, end); sort(arr, start, idx - 1); sort(arr, idx + 1, end); } }
scala代码:
package a /** * Created by bin.zhang on 2017/8/28. */ object QuickSort { def main(args: Array[String]): Unit = { val sortedList = qSort(List(7, 6, 9, 6, 2, 7, 0, 2)) println(sortedList) } def qSort(list: List[Int]): List[Int] = { if (list.length < 2) list else qSort(list.filter(list.head > _)) ++ list.filter(list.head == _) ++ qSort(list.filter(list.head < _)) } }
相关文章推荐
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 【排序系列】快速排序java实现
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 快速排序Java实现
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序
- 快速排序Java实现
- 快速排序--Java实现
- 4、 排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
- 快速排序Java实现和Javascript实现
- java(Merge) 实现归并排序,快速排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- 快速排序JAVA实现
- Java实现快速排序、归并排序、堆排序
- Java下实现快速排序
- java实现快速排序
- 快速排序方法Java实现与分析
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)