当前位置:网站首页>Recursive way
Recursive way
2022-07-06 18:12:00 【eight hundred and forty-eight million six hundred and ninety-ei】
recursive
Recursive method to achieve the maximum value of the array
@Test
public void TestMax() {
int a[] = {
0, 1, 2, 5, 3, 2, 1, 8, 4, 2, 0};
System.out.println(getMax(a));
}
public int getMax(int[] arr) {
return recursion(arr, 0, arr.length - 1);
}
//arr[l...r] Find the maximum value on the range
public int recursion(int[] arr, int l, int r) {
if (l == r) {
//arr[l...r] There is only one number in the range , Go straight back to
return arr[l];
}
int mid = l + ((r - l) >> 1); // Finding the midpoint , Prevent overflow
int leftMax = recursion(arr, l, mid);
int rightMax = recursion(arr, mid + 1, r);
return Math.max(leftMax, rightMax);
}
Merge sort

- The core idea used
Divide and conquer
Local sort first ,,,,,, Then sort the whole
First, divide a complete array into two halves ( Left half , Right half , Then divide the left side into two halves ,,,,, Until it can't be further divided , Then sort ,,,, Left row , The right row ...) Finally, the overall order
Space for time
Time complexity O(nlogn)

@Test
public void sort(){
int a[]={
2,5,4,6,9,7,1,0};
process(a,5,7);
for (int i = 0; i < 8; i++) {
System.out.print(a[i]);
}
}
/** * recursive , Bisection order * @param arr * @param l * @param r */
public void process(int[] arr, int l, int r) {
if (l == r) {
return;
}
int mid = l + ((r - l) >> 1);
process(arr, l, mid); // Order on the left
process(arr, mid + 1, r); // Order on the right
merge(arr, l, mid, r);
}
/*** * Sort * @param arr * @param l * @param mid * @param r */
private void merge(int[] arr, int l, int mid, int r) {
int[] help = new int[r - l + 1]; // Store the locally ordered array
int i = 0; // Index for new array
int j = l;
int k = mid + 1;
while (j <= mid && k <= r) {
help[i++] = arr[j] <= arr[k] ? arr[j++] : arr[k++];
}
while (j<=mid){
help[i++] = arr[j++];
}
while (k<=r){
help[i++] = arr[k++];
}
/** * Assign the ordered new array to the old array */
for (i = 0; i < help.length; i++) {
arr[l+i] = help[i];
}
}
Extension of merge sort

边栏推荐
- 递归的方式
- Easy introduction to SQL (1): addition, deletion, modification and simple query
- 编译原理——预测表C语言实现
- 【Android】Kotlin代码编写规范化文档
- VR panoramic wedding helps couples record romantic and beautiful scenes
- 78 year old professor Huake has been chasing dreams for 40 years, and the domestic database reaches dreams to sprint for IPO
- Prophet模型的简介以及案例分析
- IP, subnet mask, gateway, default gateway
- 2022暑期项目实训(二)
- 历史上的今天:Google 之母出生;同一天诞生的两位图灵奖先驱
猜你喜欢

QT中Model-View-Delegate委托代理机制用法介绍

模板于泛型编程之declval

【Android】Kotlin代码编写规范化文档

Distinguish between basic disk and dynamic disk RAID disk redundant array

Rb157-asemi rectifier bridge RB157

There is a gap in traditional home decoration. VR panoramic home decoration allows you to experience the completion effect of your new house

Grafana 9.0 正式发布!堪称最强!

JMeter interface test response data garbled

Take you through ancient Rome, the meta universe bus is coming # Invisible Cities

Introduction to the usage of model view delegate principal-agent mechanism in QT
随机推荐
Interview shock 62: what are the precautions for group by?
Getting started with pytest ----- test case pre post, firmware
Declval (example of return value of guidance function)
Rb157-asemi rectifier bridge RB157
Flet教程之 13 ListView最常用的滚动控件 基础入门(教程含源码)
After entering Alibaba for the interview and returning with a salary of 35K, I summarized an interview question of Alibaba test engineer
一体化实时 HTAP 数据库 StoneDB,如何替换 MySQL 并实现近百倍性能提升
【Swoole系列2.1】先把Swoole跑起来
Pourquoi Li shufu a - t - il construit son téléphone portable?
FMT open source self driving instrument | FMT middleware: a high real-time distributed log module Mlog
Release of the sample chapter of "uncover the secrets of asp.net core 6 framework" [200 pages /5 chapters]
Kill -9 system call used by PID to kill process
Pytorch extract middle layer features?
编译原理——预测表C语言实现
sql语句优化,order by desc速度优化
Jielizhi obtains the currently used dial information [chapter]
D binding function
The difference between parallelism and concurrency
Manifest of SAP ui5 framework json
This article discusses the memory layout of objects in the JVM, as well as the principle and application of memory alignment and compression pointer