RS.CLIPPY.STABLE_SORT_PRIMITIVE

Use of sort() when sort_unstable() is equivalent

This checker is a Clippy lint created by The Rust Project Contributors. The documentation shown here is a copy of the original documentation for: stable_sort_primitive. Copyright ©2025 The Rust Team. All rights reserved.

What it does

When sorting primitive values (integers, bools, chars, as well as arrays, slices, and tuples of such items), it is typically better to use an unstable sort than a stable sort.

Why is this bad?

Typically, using a stable sort consumes more memory and cpu cycles. Because values which compare equal are identical, preserving their relative order (the guarantee that a stable sort provides) means nothing, while the extra costs still apply.

Known problems

As pointed out in issue #8241, a stable sort can instead be significantly faster for certain scenarios (eg. when a sorted vector is extended with new data and resorted).

For more information and benchmarking results, please refer to the issue linked above.

Example

let mut vec = vec![2, 1, 3];
vec.sort();

Use instead:

let mut vec = vec![2, 1, 3];
vec.sort_unstable();