• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

181
Views
functional non-destructive array sort

Apart for the native way of cloning an array and then sorting it in place, is there an algorithm and existing implementation that is more suited for non-destructive sorting?

Need to sort an array of floats into a new array without changing the source. My search results were rather thin since most of the literature is focused on reducing the memory requirements with in-place sorting.

Using the native sorted = [].slice().sort() works fine. This question is about understanding if there are other performant sorting implementations when memory constraints are removed since a new array is needed anyway.

over 3 years ago · Santiago Trujillo
2 answers
Answer question

0

There's a simpler syntax for immutably sorting an array using ES6 spread operator:

[...array].sort(sortFn)
over 3 years ago · Santiago Trujillo Report

0

As the comments have repeated a few times:

  1. shuffledArray.slice().sort() is the default way to go.
  2. It's not really clear how we could have a better algorithm / method using the libraries your mentioned.

Seeing as the motivation for non-destructive sorting is related to writing functional code, and you're looking at Ramda...check out Facebook's ImmutableJS library if you haven't already.

Particularly, the Seq. You could start storing your array of floats in a Seq, sort it, and be sure the original Seq remains in the right order. In addition, it utilizes Lazy evaluation. http://facebook.github.io/immutable-js/docs/#/Seq
http://facebook.github.io/immutable-js/docs/#/Seq/sortBy

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error