w3resource

JavaScript: Find the number of inversions of a specified array of integers

JavaScript Basic: Exercise-102 with Solution

Write a JavaScript program to find the number of inversions of a given array of integers.

Note: Two elements of the array a stored at positions i and j form an inversion if a[i] > a[j] and i < j.

Sample Solution:

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title> Find the number of inversions of a specified array of integers</title>
</head>
<body>

</body>
</html>

JavaScript Code:

function number_of_InversionsNaive(arr) {
    var ctr = 0;
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] > arr[j]) 
              ctr++;
        }
    }
    return ctr;
}

console.log(number_of_InversionsNaive([0, 3, 2, 5, 9]));   
console.log(number_of_InversionsNaive([1, 5, 4, 3]));   
console.log(number_of_InversionsNaive([10, 30, 20, -10]));  

Sample Output:

1
3
4

Flowchart:

Flowchart: JavaScript - Find the number of inversions of a specified array of integers

ES6 Version:

function number_of_InversionsNaive(arr) {
    let ctr = 0;
    for (let i = 0; i < arr.length; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] > arr[j]) 
              ctr++;
        }
    }
    return ctr;
}

console.log(number_of_InversionsNaive([0, 3, 2, 5, 9]));   
console.log(number_of_InversionsNaive([1, 5, 4, 3]));   
console.log(number_of_InversionsNaive([10, 30, 20, -10]));  

Live Demo:

See the Pen javascript-basic-exercise-102 by w3resource (@w3resource) on CodePen.


Contribute your code and comments through Disqus.

Previous: Write a JavaScript program to check whether a given string contains only Latin letters and no two uppercase and no two lowercase letters are in adjacent positions.
Next: Write a JavaScript program to find the maximum number from a given positive integer by deleting exactly one digit of the given number.

What is the difficulty level of this exercise?



JavaScript: Tips of the Day

Classes/function constructors

class Person {
  constructor() {
    this.name = 'Owen';
  }
}

Person = class AnotherPerson {
  constructor() {
    this.name = 'Eddie';
  }
};

const member = new Person();
console.log(member.name);

We can set classes equal to other classes/function constructors. In this case, we set Person equal to AnotherPerson. The name on this constructor is Eddie, so the name property on the new Person instance member is "Eddie".

Ref: https://bit.ly/3jFRBje