快速排序

python实现
def quick_sort(collection):
    length = len(collection)

    if length<=1 :
        return collection
    else:
        pivot = collection.pop()
        greater,lesser = [] ,[] 
        for element in collection:
            if element > pivot:
                greater.append(element)
            else:
                lesser.append(element)

        return quick_sort(lesser) + [pivot] + quick_sort(greater)


if __name__ == "__main__" :
    user_input = input("Enter numbers separated by a comma:\n").strip()
    unsorted = [int(item) for item in user_input.split(",")]
    print (quick_sort(unsorted))
java实现
public class quick_sort {
    public static void main(String[] args) throws IOException {
        System.out.println("请输入需排序的数字:");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] arra = br.readLine().split(",");

        Integer[] array = new Integer[arra.length];
        for(int i=0; i<arra.length; i++)
            array[i] = Integer.parseInt(arra[i]);

        List<Integer> as = Arrays.asList(array);
        as = quickSort(as);
        for(int i=0;i<as.size();i++)
            System.out.print(as.get(i)+",");
    }

    private static List<Integer> quickSort(List<Integer> array) {

        if(array.size() <= 1)
            return array;
        else{

            int pivot = array.get(0);
            List<Integer> lowList = new ArrayList<Integer>();
            List<Integer> highList = new ArrayList<Integer>();
            for(int i=1; i<array.size(); i++){

                if(array.get(i) < pivot)
                    lowList.add(array.get(i));
                else {
                    highList.add(array.get(i));
                }

            }
            List<Integer> nowList = new ArrayList<Integer>();
            nowList.add(pivot);
            lowList = quickSort(lowList);
            lowList.add(pivot);
            lowList.addAll(quickSort(highList));
            return lowList;

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值