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

devtools/2024/10/22 12:35:27/

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;}
}


http://www.ppmy.cn/devtools/104660.html

相关文章

【王树森】Few-Shot Learning小样本学习 (1/3): 基本概念(个人向笔记)

前言 下面是犰狳和穿山甲的一些图片。现在要你判断右边给定的图片是犰狳和穿山甲。我相信应该不知道犰狳和穿山甲长啥样&#xff0c;但是在看了左边的 Support Set 之后&#xff0c;你就有能力从两者之间辨别出来。既然人可以通过这四张图片分辨出犰狳和穿山甲。那么计算机能不…

华为设备默认密码

‌华为设备的默认密码因设备类型和型号不同而有所差异。以下是一些常见华为设备的默认密码&#xff1a; ‌网络设备‌&#xff1a; ‌华为路由器&#xff08;型号&#xff1a;华为HG8245H&#xff09;&#xff1a;默认用户名是root&#xff0c;默认密码是admin。‌1‌华为交换…

c++140namespace和ioterm

c语言只有一个全局定义域 那么可能会调错函数&#xff0c;调 错定义域 #include"iostream" using namespace std;//iostream 没有引入标准的std,需要手工写 //如果不写using namespace 需要引入std void main() {std::cout << "using test" <<…

仿BOSS招聘系统开发:构建高效、智能的在线招聘平台

在数字化时代&#xff0c;招聘行业正经历着前所未有的变革。BOSS直聘作为国内领先的招聘平台&#xff0c;以其高效的匹配机制、丰富的职位信息和便捷的用户体验&#xff0c;赢得了广泛的市场认可。本文将探讨如何开发一个仿照BOSS招聘系统的在线招聘平台&#xff0c;旨在为企业…

LVGL 控件之矩阵按钮(lv_buttonmatrix)

目录 一、矩阵按键1、组成2、创建矩阵3、按钮宽度4、按键属性5、按钮互斥6、按钮文本重着色7、按钮矩阵部件的事件8、API 函数二、例程 一、矩阵按键 1、组成 按钮矩阵部件由两个部分组成&#xff1a;主体背景和按钮&#xff0c;示意图如下&#xff1a; LV_PART_MAIN&#xf…

使用 OpenCV 组合和缩放多张图像

在图像处理领域&#xff0c;我们经常需要将多张小图像组合成一张大图。例如&#xff0c;将多张图像按一定布局排列在一起&#xff0c;或者创建一个缩略图画廊。在这篇博客中&#xff0c;我将向你展示如何使用 Python 的 OpenCV 库来完成这一任务。 代码 下面是一段完整的 Pyt…

安美数字酒店宽带运营系统-任意文件读取

漏洞描述&#xff1a; 安美数字酒店宽带运营系统 weather.php 接口存在任意文件读取漏洞&#xff0c;未经身份验证攻击者可通过该漏洞读取系统重要文件&#xff08;如数据库配置文件、系统配置文件&#xff09;、数据库配置文件等等&#xff0c;导致网站处于极度不安全状态 fo…

STM32 使用8720 通过LWIP发送数据

一、硬件IOC 1、GPIO 2、NVIC 3、SYS 4、RCC 5、ETH 6、USART 7、LWIP 二、软件函数 1、Main /* USER CODE BEGIN Includes */ #include "ytcesys.h" /* USER CODE END Includes *//* USER CODE BEGIN 2 */ ethreset(); MX_LWIP_Init(); OPEN_USART1…