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

JavaSE-递归法解决二分查找、快速排序

704. 二分查找icon-default.png?t=N7T8https://leetcode.cn/problems/binary-search/

package demo;public class BinarySearch {public static void main(String[] args) {BinarySearch br=new BinarySearch();System.out.println(br.search(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9}, 8));}public int search(int[] nums, int target) {int index=-1,mid= (int) Math.floor(nums.length/2);//默认为中间位置if(nums[mid]==target){index=mid;}else if(nums[mid]>target){// 向左查找index=search(nums,target,0,mid-1);}else{// 向右查找index=search(nums,target,mid+1,nums.length-1);}return index;}public static int search(int[] nums,int v,int start,int end){if(start>end){return -1;}int mid= (int) Math.floor((start+end)/2);if(nums[mid]==v){return mid;}else if(nums[mid]>v){return search(nums,v,start,mid-1);}else{return search(nums,v,mid+1,end);}}
}

牛客网——快速排序icon-default.png?t=N7T8https://www.nowcoder.com/questionTerminal/53d2f8d6f4e0472d83ee83a4d16f1b8f?page=1&onlyReference=false

package demo;public class QuickSort {public static void main(String[] args) {QuickSort qs=new QuickSort();quickSort(new int[]{10,3,8,2,1,9,4,7,11},0,8);}public static void quickSort(int[] nums,int start,int end){// 递归结束条件if(start>=end){return;}int pivot=partition(nums,start,end);    // 返回pivot的位置quickSort(nums,start,pivot-1);  // 递归左子树quickSort(nums,pivot+1,end);    // 递归右子树System.out.println("当前节点为:"+pivot+"排序后的数组是");for (int i = 0; i < nums.length; i++) {System.out.print(nums[i]+" ");}System.out.println();}public static int partition(int[] nums,int start,int end){  // 快排的partition操作int pivot=nums[start];while(start<end){while(start<end&&nums[end]>=pivot){end--;}nums[start]=nums[end];while(start<end&&nums[start]<=pivot){start++;}nums[end]=nums[start];}nums[start]=pivot;return start;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt:玩转QPainter后转之太极图
  • 蓝色炫酷碎粒子HTML5导航源码
  • go to + 名词 - go to the + 名词
  • shell了解和问答机制
  • C#通过OpenCL调用显卡GPU做高效并行运算
  • c++ 原型模式
  • tornado获取请求参数
  • Qt中的父窗口子窗口和父类子类的区别
  • Nginx: 负载均衡基础配置, 加权轮序, hash算法, ip_hash算法, least_conn算法
  • 单一职责原则介绍
  • wordpress 页面URL自动跳转到图片地址?
  • H5手机端调起支付宝app支付
  • [线程]单例模式 及 指令重排序
  • 面向对象编程
  • axios响应
  • 分享的文章《人生如棋》
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 30天自制操作系统-2
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Angular4 模板式表单用法以及验证
  • Asm.js的简单介绍
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ERLANG 网工修炼笔记 ---- UDP
  • Javascript基础之Array数组API
  • JS变量作用域
  • js继承的实现方法
  • JS专题之继承
  • PHP CLI应用的调试原理
  • Rancher如何对接Ceph-RBD块存储
  • 测试如何在敏捷团队中工作?
  • 两列自适应布局方案整理
  • 深入 Nginx 之配置篇
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 思考 CSS 架构
  • 我的zsh配置, 2019最新方案
  • 一些css基础学习笔记
  • Mac 上flink的安装与启动
  • Nginx实现动静分离
  • Spring第一个helloWorld
  • 如何用纯 CSS 创作一个货车 loader
  • ​【已解决】npm install​卡主不动的情况
  • # SpringBoot 如何让指定的Bean先加载
  • #大学#套接字
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.ajax中的eval及dataType
  • $forceUpdate()函数
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (floyd+补集) poj 3275
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (六)c52学习之旅-独立按键
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (四)鸿鹄云架构一服务注册中心