您的位置:首页 > 编程语言 > Java开发

快速排序的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 scala 快速排序