神州数码笔试:快排

神州数码笔试:快排

题目描述:

输入一个字符串,如3,5,1,2,6,7
输出排序后的字符串,要求使用快排

package leetcode;

import java.util.Scanner;

public class Main {

    // 快排
    public static void qsort(int[] arr, int left, int right) {
        if(left < right) {
            int i = left;
            int j = right;
            int x = arr[left];
            while(i < j) {
                while(i < j && arr[j] >= x) j--;
                if(i < j) {
                    arr[i++] = arr[j];
                }
                while(i < j && arr[i] < x) i++;
                if(i < j) {
                    arr[j--] = arr[i];
                }
            }
            arr[i] = x;
            qsort(arr, left, i-1);
            qsort(arr, i+1, right);
        }
    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            String line = sc.nextLine();
            String[] arr = line.split(",");

            int[] list = new int[arr.length];
            for(int i = 0; i < arr.length; i++) {
                list[i] = Integer.parseInt(arr[i]);
            }
            qsort(list, 0, list.length-1);
            for(int i = 0; i < list.length - 1; i++) {
                System.out.print(list[i]+" ");
            }
            System.out.println(list[list.length-1]);
        }
        sc.close();
    }

}

基础要打牢啊

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值