Day02_Recursion&QuickSort&Arrays&Date&SimpleDateFormat&LocalDateTime&Period&Duration

本文介绍了Java中递归的概念,详细讲解了如何使用递归实现快速排序。接着探讨了Date和SimpleDateFormat类在处理日期格式化中的应用。此外,还通过秒杀案例展示了时间处理的实际场景。文章进一步探讨了JDK8新增的日期类,包括Period和Duration类,用于计算两个日期或时间间隔。最后,提供了时间类的小练习以巩固所学知识。
摘要由CSDN通过智能技术生成

递归

//利用递归求1-100的和
  int sum = getSum(100);
        System.out.println(sum);
    }
    //如果不给递归设置出口的话 会出现下面的错误
    //StackOverflowError 栈内存溢出错误
    public static int getSum(int i){
   
        if (i==1){
   
            return 1;
        }else{
   
            return i+getSum(i-1);
        }
    }
 //利用递归求5的阶乘(5*4*3*2*1)
       int result= getSum(5);
        System.out.println(result);
    }

    public static int getSum(int i) {
   
        if(i==1){
   
            return 1;
        }else{
   
            return i*getSum(i-1);
        }
    }
//随堂联系:计算斐波那契数列的第n项 假设n从0开始算3
//0 1 1 2 3 5 8 13 21 34...

    public static void main(String[] args) {
   
       int result= getCount(8);
        System.out.println(result);//34
    }

    public static int getCount(int n) {
   
        if (n==0||n==1){
   
            return 1;
        }else{
   
            return  getCount(n-1)+getCount(n-2);
        }

    }

利用递归快速排序



    
    public static void main(String[] args) {
   
        
        int []arr = {
   6,3,5,8,9,1,2,4,10,7};
        quickSort(arr,0,arr.length-1);
        for (int i = 0; i < arr.length; i++) {
   
            System.out.println(arr[i]);
        }

    }

    private static void quickSort(int[] arr, int left, int right) {
   
        if(left>right){
   
            return;
        }
         int left0 =left;
         int right0=right;
         int v=arr[left0];//基准点
        //基本条件 基准点左边的始终比右边的小(不相等)
        while(left<right){
   

            while(arr[right]>=v&&left<right){
   
                 right--;
            }
            while(arr[left]<=v&&left<right){
   
                left++;
            }
            swap(arr<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值