day10 快速排序 方法重载 和 方法递推

 方法重载

 


斐波拉契数列问题  使用重载思想解决 

  public static int method(int n){
        if (n == 2 ){
            return  1 ;
        }
        return (n-1)*2+method(n-1);
    }
    public  static  int f(int n){
        if (n == 1){
            return  1;
        }
        if (n == 2){
            return 2;
        }
        return f(n-1)+f(n-2);
    }

快速排序

思维很简单,类似二分查找利用for循环逼近中间值,但实际计算时比较复杂

二分查找
 public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int arr[] = {1,5,9,45,88,102,555};
        int max = arr.length-1;
        int min = 0;
        int mid = (max+min)/2;
        int num = scan.nextInt();
        while (num !=arr[mid]){


            if (num > arr[mid]){
                min = mid+1;
                mid = (max+min)/2;
            }else if(num < arr[mid]){
                max = mid -1;
                mid = (max+min)/2;
            }

            if (min > max){
                break;
            }


        }
        if (min <= max){
            System.out.println("找到了"+arr[mid]);
        }else {
            System.out.println(-1);
        }

    }
public class QuickSort {
    public static void main(String[] args) {
        int[] arr = {6,3,12,2,15,19,7,3,1};
        quickSort(arr.length-1,0,arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void quickSort(int right,int left,int arr[]){
        if ( left > right ){
            return;
        }

        int j = right;
        int i = left;
        int base =arr[left] ; //定义一个基准数
        while(i != j){//在左表与右标遍历完整个数组时跳出循环
            while (arr[j] >= base && i < j){
                //在右侧找一个小于基准的数,然后跳出循环   得到j
                j--;//往左遍历
            }
            while (arr[i] <= base && j > i){
                //在左侧直到找到一个大于基准的数,然后跳出循环 得到i
                i++;//往右遍历
            }
            //交换对应值
            int temp = arr[i];
            arr[i]  = arr[j];
            arr[j]  = temp;


        }
        //交换基准值  交换 ij相遇值和基准值所在位置
//        int temp1 = arr[i];
//        arr[i]   =  base;
//        base   = temp1;
        arr[left] = arr[i]; //把相遇位置上的元素赋值给 原来基准数所在位置
        arr[i] = base; // 把基准数赋值给相遇位置


        quickSort(i-1,left,arr);//递归左半边
        quickSort(right,j+1,arr);//递归左半边

二维数组for循环打印杨辉三角

 打印杨辉三角类似 打印  直角三角形  菱形  99乘法表  

  public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入行数:");
        int row = scan.nextInt();

        //定义一个二维数组用于存储杨辉三角
        int[][] arr = new int[row][];

        //向二维数组中填充值
        for (int i = 0; i < arr.length; i++) {//获取到杨辉三角的每一行
            //因为每一行都是null,需要赋值
            arr[i] = new int[i + 1];
            //遍历arr[i]填充元素
            for (int j = 0; j < arr[i].length; j++) {
                if(j==0 || j==i){
                    arr[i][j] =1;
                }else{
                    arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
                }
                //System.out.print(arr[i][j] +"\t");
            }
           // System.out.println();
        }



        //打印杨辉三角
        for (int i = 0; i < arr.length; i++) {
            //打印空格
            for (int j = 0; j < arr.length-i-1; j++) {
                System.out.print("  "); //2个空格
            }
            //打印杨辉三角
            for (int j = 0; j <=i; j++) {
                System.out.print(arr[i][j]+"   "); //3个空格
            }
            System.out.println();
        }

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle以逗号分隔的字符串拆分为多行数据实例详解

前言 近期在工作中遇到某表某字段是可扩展数据内容&#xff0c;信息以逗号分隔生成的&#xff0c;现需求要根据此字段数据在其它表查询相关的内容展现出来&#xff0c;第一想法是切割数据&#xff0c;以逗号作为切割符&#xff0c;以下为总结的实现方法&#xff0c;以供大家参…

python制作小程序制作流程,用python编写一个小程序

这篇文章主要介绍了python制作小程序代码宠物运输&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 d…

第二季“数字强市建设体验团”活动感悟-张继群

目录 第二季“数字强市建设体验团”活动感悟-张继群 第二季“数字强市建设体验团”活动感悟-张继群 此次参观中山东安信木业、费县智慧城市运营中心、澳柯玛以及沂南双创科技园区给我留下深刻印象&#xff0c;我深深地感受到了现代科技与生活的紧密联系。我们临沂市智慧大数据…

在x86下运行的Ubuntu系统上部署QEMU用于模拟RISC-V硬件系统

1.配置工作环境 sudo apt install gcc bison flex libncurses-dev ninja-build \pkg-config build-essential zlib1g-dev pkg-config libglib2.0-dev \binutils-dev libboost-all-dev autoconf libtool libssl-dev \libpixman-1-dev python-capstone virtualenv software-prop…

selenium获取b站视频标题

一、下载selenium 1. 下载对应版本的浏览器驱动 2. 安装selenium 3.把浏览器驱动放到使用的python内核的script目录中 二、测试效果模拟登录b站 from selenium import webdriver from selenium.webdriver.common.by import By import timebrowser webdriver.Chrome() # 打…

设计模式之Bridge模式的C++实现

目录 1、Bridge模式的提出 2、Bridge模式的定义 3、Bridge模式总结 4、需求描述 5、多继承方式实现 6、使用Bridge设计模式实现 1、Bridge模式的提出 在软件功能模块设计中&#xff0c;如果类的实现功能划分不清晰&#xff0c;使得继承得到的子类往往是随着需求的变化&am…

Win10语言设置 - 显示语言和应用语言

前言 Win10的语言设置可以设置显示语言和应用语言。其中&#xff0c;显示语言用于显示系统文字&#xff1b;应用语言用于应用程序显示文字。下文介绍如何设置。 显示语言 打开系统设置&#xff0c;选择时间和语言&#xff0c;如下图&#xff1a; 修改Windows显示语言即可更…

搭建Django+pyhon+vue自动化测试平台

Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…

linux文本三剑客---grep,sed,awk

目录 grep 什么是grep&#xff1f; grep实例演示 命令参数&#xff1a; 案例演示&#xff1a; sed 概念&#xff1a; 常用选项&#xff1a; 案例演示&#xff1a; awk 概念&#xff1a; awk常用命令选项&#xff1a; awk变量&#xff1a; 内置变量 自定义变量 a…

Java课题笔记~ JavaWeb概述/开发基础

JavaWeb概述/开发基础 1.XML基础 &#xff08;1&#xff09;XML概述 &#xff08;2&#xff09;XML语法 &#xff08;3&#xff09;DTD约束 &#xff08;4&#xff09;Schema约束&#xff08;XML Schema 比 DTD 更强大&#xff09; 2.Web基础知识 Web是一个分布式的超媒…

1、如何实现两台电脑之间数据相互读写

一、确保两台电脑在同一个局域网中&#xff0c;可以使用网线【动态配置】进行两台电脑互连。 二、静态配置: 将IP地址和网关设为192.168.0.1&#xff0c;目的是让这台电脑做另一台电脑的网关&#xff0c;子网掩码一点击会自动添加。第二台电脑同样打开设置&#xff0c;此处IP地…

MySQL之深入InnoDB存储引擎——Undo页

文章目录 一、UNDO日志格式1、INSERT操作对应的UNDO日志2、DELETE操作对应的undo日志3、UPDATE操作对应的undo日志1&#xff09;不更新主键2&#xff09;更新主键的操作 3、增删改操作对二级索引的影响 二、UNDO页三、UNDO页面链表四、undo日志具体写入过程五、回滚段1、回滚段…

初中信息技术考试编程题,初中信息技术python教案

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;初中信息技术python编程题库 网盘&#xff0c;初中信息技术python编程教学&#xff0c;今天让我们一起来看看吧&#xff01; ID:12450455 资源大小&#xff1a;934KB 资料简介: 2019-2020学年初中信息技术【轻松备课】P…

阔别三年,领先回归!别克LPGA锦标赛申城十月再启高球盛会

2023年8月4日——2023年金秋十月&#xff0c;阔别中国赛场已久的别克LPGA锦标赛将强势归来&#xff0c;于10月12日至15日在上海旗忠花园高尔夫俱乐部再次拉开帷幕。作为三年来首个回归、同时也是今年国内唯一开赛的国际顶级高尔夫职业赛事&#xff0c;别克LPGA锦标赛将吸引全世…

vscode 设置滑条颜色

1. 默认的滑条是灰黑色的&#xff0c;很难看的清 2. 左下角&#xff0c;打开VS Code 设置功能 3. 输入命令 workbench color&#xff0c;回车 4. 找到工作台&#xff1a;自定义颜色设置&#xff0c;打开设置文件 setting.json 5. 打开配置文件 6. 添加颜色配置 "workben…

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底&#xff0c;ChatGPT火遍全球&#xff0c;全世界都见识了大语言模型的强大力量。人们对大模型不再陌生&#xff0c;开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等&#xff0c;而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2)&#xff0c;这是一个…

JSON.stringify循环引用问题

前端使用到对象的深度复制通常会简单的使用JSON.parse(JSON.stringify(obj))实现 &#xff08;浅表复制会用Array.from、Object.assign、Object.create静态方法实现&#xff09;&#xff0c;但在对象存在循环引用的情况下&#xff08;比如&#xff1a;树结构中子对象存在parent…

API接口:企业信息核验

企业信息核验是现代企业管理中必不可少的一项业务&#xff0c;它可以帮助企业做出正确的决策。在这篇文章里&#xff0c;我们将会介绍如何使用API接口来对企业信息进行核验&#xff0c;并实现快捷、准确的查询。 一、API接口 在这里我们使用的是挖数据提供的企业信息核验API接…

sk_buff操作函数学习

一. 前言 内核提供了大量实用的操作sk_buff的函数&#xff0c;在开发网络设备驱动程序和修改网络协议栈代码时需要用到。这些函数从功能上可以分为三类&#xff1a;创建&#xff0c;释放和复制socket buffer&#xff1b;操作sk_buff结构中的参数和指针&#xff1b;管理socket b…

Flink作业调度的9种状态

1.什么是作业调度 Flink 通过 Task Slots 来定义执行资源。每个 TaskManager 有一到多个 task slot&#xff0c;每个 task slot 可以运行一条由多个并行 task 组成的流水线。 这样一条流水线由多个连续的 task 组成&#xff0c;比如并行度为 n 的 MapFunction 和 并行度为 n 的…