Problem 42816. Sorting integers by their digits (Level 4)

  • Created by HH

This is the next step up from Problem 42815.

Given a vector, v, of complex numbers (negative or positive), return a vector, w, by sorting v in ascending order, such that primary sorting is done by the first digit (representing the largest value), secondary sorting by the second digit (next largest value), and so on.

Once all real digits have been used for sorting, it should continue with the imaginary part, which are further down the order.

Example:

v = [14.38 210+69i 80.42 3.14 0-15i 268 -14.38 210+64i 0+15i 1 80.44];

w = [0-15i 0+15i 1 -14.38 14.38 210+64i 210+69i 268 3.14 80.42 80.44];

As shown above, in cases of multiple numbers starting with the same digits, such as 1 and 14.38, shorter numbers take precedence.

Negative numbers take precedence over positive numbers.

Imaginary numbers should be treated as if they had a leading zero, because they have a zero real part.

Solution Stats

24.24% Correct | 75.76% Incorrect
Last Solution submitted on Mar 11, 2024

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers37

Suggested Problems

More from this Author45

Problem Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!