当前位置: 首页 > news >正文

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){//在右侧找一个小于基准的数,然后跳出循环   得到jj--;//往左遍历}while (arr[i] <= base && j > i){//在左侧直到找到一个大于基准的数,然后跳出循环 得到ii++;//往右遍历}//交换对应值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();}}

http://www.lryc.cn/news/116086.html

相关文章:

  • Qt 6. 其他类调用Ui中的控件
  • PHP 的不同版本(src 版、nts 版和 win 版)之间的区别和共同点。
  • 3 vue的if语法
  • python基础3——流程控制
  • kubernetes中最小组件——Pod
  • C++ 友元
  • Vulkan 绘制显示设计
  • Linux性能分析工具介绍(一)--cpu及功耗相关工具介绍
  • 智能财务分析的无冕之王-奥威BI数据可视化工具
  • .NET 应用程序 部署
  • Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包
  • 剑指Offer13.机器人的运动范围 C++
  • List、Map、Set打印
  • 软件机器人在渔业船员证书核发中自动化二次审批制证,提高效率和准确性
  • Godot4 C# vscode开发环境搭建
  • nginx简介与安装配置,目录结构和配置文件介绍
  • CTF流量题解http4.pcapng
  • 旷视科技AIoT软硬一体化走向深处,生态和大模型成为“两翼”?
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED
  • 数组相关练习
  • Leetcode-每日一题【剑指 Offer 11. 旋转数组的最小数字】
  • git教程(第一次使用)
  • Autoware.ai1.14.0自动驾驶-Demo运行
  • AttributeConverter
  • 【逗老师的PMP学习笔记】8、项目质量管理
  • Zookeeper集群
  • 后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)
  • 【香瓜说职场】第10月(2018.01.29)
  • ​LeetCode解法汇总1749. 任意子数组和的绝对值的最大值
  • 4.2、Flink任务怎样读取文件中的数据