Tips for identifying the extreme points (minimum and maximum) within a fluctuating interval

With an array of length 200, a new number is added to position [0] every second, pushing the other values up one position in the array.

I am looking for a way to determine the maximum and minimum values of the entire array each time a new number is added. I want to analyze all 200 values before adding a new one.

I have been able to achieve this, but encountered difficulty discarding the 'old' maximum and 'old' minimum values once they are pushed out of the array.

To address this issue, I tried using the first differential and storing the current value in another array. However, this led to multiple occurrences of the maximum or minimum values in no specific order. I aim to have only one maximum and one minimum value stored at a time.

Answer №1

If you are dealing with an array of n values that is constantly updated by removing the first element and adding a new one at the end, you can optimize the algorithm for finding the min/max of the interval by breaking it down into two steps.

By making the assumption that

min(data) = min(data[0], data[1..n-1])

based on your precondition, you can avoid recalculating the min/max on all values each time.

For example, let's say you have 200 values and a generic min function that calculates the minimum of an array, a pair of values, or a value and an array (metacode).

You start by calculating the minimum and additional supporting data:

int middleMin = min(array[1..n-1]); // skipping the first
int firstValue = array[0];
int realMin = min(firstValue, middleMin);

When you add a new element at the end and remove the first element, there are two possible scenarios:

  • firstValue == realMin ( && firstValue < middleMin)
    , in this case, you need to find the next higher value in the new array[0..n-1] since you removed the minimum.
  • middleMin == realMin, in this case, you know that the removed element was not the first, so you only need to update the global minimum according to the new inserted element, e.g.,
    middleMin = realMin = min(realMin, array[n-1])
    .
  • It can also happen that firstValue == middleMin, which falls back to the second scenario since there is another value in the array that is currently the minimum.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The instance cannot be accessed by ES6 class methods

Having trouble accessing the this instance in one of my methods within a class that I created. In my router, I am calling the method like this: import Emails from '../controllers/emails' import router from 'express' .... route.post(&a ...

What is the best way to send a function along with personalized data?

Currently, I am working on a project using node.js with socket.io. I am looking for a way to have socket.on() use a unique callback function for each client that joins the server. Here is my current technique: I have created a simple JavaScript class whi ...

Comparing Performance: Ajax with JSON Versus Text

I'm feeling a bit puzzled and was hoping to get some insight from one of you. I want to optimize the performance of my Ajax request. The data being transmitted is a table with 1,000 rows and 10 columns. The question at hand is: should I transmit it as ...

Concealing a div element depending on the cookie value upon page load

I've been working on a project where I created a div element and used jQuery to toggle its visibility. My goal is to hide the div for 5 minutes when the user clicks on a "hide" button, and then show it again after reloading the page within that time f ...

What methods can be used to identify the pattern entered by the user for data types such as `Int`, `VarChar`, `

I have a dropdown menu containing data types. There is also a text box for entering Regex patterns. If "/test/" is entered in the textbox or "Int" is selected from the dropdown, then it's an incorrect pattern. If "/[0-9]/" is entered in the ...

The issue with loading pages in jQuery Mobile AJAX is not being resolved

echo '<script> function ' . $row['idname'] . 'Click(){ $( "#flip-' . $row['idname'] . '" ).flipswitch( "disable" ); var isOff = document.getElementById("flip-' . $row['idname& ...

Having trouble getting the mock module to work with mockImplementation

I have been facing a challenge in properly testing this File. Some tests require mocking the entire module, while others only need specific methods mocked. I have tried various combinations, but currently, for one specific test below, I am attempting the f ...

AngularJS service using $http.get is failing to transfer data to a controller

Just getting started with AngularJS and I'm running into some challenges with the basics. I've been working on a service that uses $http.get to load a couple of Json files. However, when I try to use the service in my controller, I end up with e ...

conceal the input once the button is clicked

Here is my code snippet: while ($row = $result->fetch_assoc()) { $id = $row['id']; ?> <script> $(document).ready(function(){ $("#btn<?echo $id?>").click(function(){ $(" ...

Tips for matching variable content with button identification to display content within a variable for ThreeJS?

I'm currently working on a project using Three.js where I need to load multiple 3D models and store them in an array. Each model has a corresponding button with a unique ID that when clicked, should add that specific model to the scene and remove any ...

A step-by-step guide on using Jquery to fade out a single button

My array of options is laid out in a row of buttons: <div class="console_row1"> <button class="button">TOFU</button> <button class="button">BEANS</button> <button class="button">RIC ...

Add the slide number and total count in between the navigation arrows of the owl carousel

In my Angular application, I am utilizing an ngx owl carousel with specific configurations set up as follows: const carouselOptions = { items: 1, dots: false, nav: true, navText: ['<div class='nav-btn prev-slide'></div>' ...

Ways to protect my client's password in API response

I am relatively new to the world of JavaScript and MERN stack development. Currently, I am working on building a small-scale social media application. However, while coding the sign-up API, I encountered an issue where I could not properly segregate and hi ...

Tips for swapping out a div tag with another div tag in the same spot without needing to redirect to a different page by utilizing bootstrap

Currently, I am developing a JSP project that utilizes Bootstrap for the frontend. I have come across a question regarding HTML design. Is there a way to replace one div tag with another div on the same page without navigating to a new URL using Bootstrap ...

Implementing a click event listener to target a specific div using JavaScript

In my JavaScript code, I have implemented a snowfall effect. I am looking to create a click event specifically on the 10th snowflake that falls down. Additionally, I want to add a class called "clickable" to this snowflake. The goal is to redirect the user ...

issue with visibility of checkbox in material ui table row

In a separate file called TradesTable.js, I have created a table using Material UI for my React app. const DummyTableRow = (props) => { let myRows = props.trades.map((trade, index) => { return <TableRow> <TableRowColumn ...

"Dealing with an unspecified number of fields in an ExtJS data model

I have a data model that is designed to accommodate various incoming data by keeping it generic and allowing for the addition of multiple meta data tags to my project. How can I effectively map these data fields to the Model or access them in the array w ...

Vue's Global mixins causing repetitive fires

In an effort to modify page titles, I have developed a mixin using document.title and global mixins. The contents of my mixin file (title.ts) are as follows: import { Vue, Component } from 'vue-property-decorator' function getTitle(vm: any): s ...

What steps do I need to take in order to activate the server-side console logging?

Recently, I created some server middleware in my api/index.js file: module.exports = function(req, res, next){ console.log(req); next(); }; After that, I integrated it into my nuxt.config.js: serverMiddleware: [{path: 'stocks', handler ...

Create a simple carousel using only vanilla JavaScript, without relying on any external plugins

Currently, I am working on implementing a carousel using plain JavaScript without the use of any plugins. My goal is to have previous and next buttons that will control the sliding images. var firstval = 0; function ...