Сортировка по возрастанию и убыванию: методы и примеры кода

Сортировка – это фундаментальная операция в информатике и анализе данных, которая упорядочивает элементы в определенном порядке. Два распространенных порядка сортировки — это порядок возрастания (от самого низкого к высшему) и порядок убывания (от самого высокого к самому низкому). В этой статье блога мы рассмотрим различные методы сортировки данных по возрастанию и убыванию, а также приведем примеры кода на популярных языках программирования.

Метод 1: пузырьковая сортировка
Пузырьковая сортировка — это простой алгоритм сортировки на основе сравнения. Он неоднократно проходит по списку, сравнивает соседние элементы и меняет их местами, если они расположены в неправильном порядке.

Пример кода (Python):

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr
# Example usage
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print(sorted_arr)  # Output: [11, 12, 22, 25, 34, 64, 90]

Метод 2: сортировка выбором
Сортировка выбором — еще один простой алгоритм сортировки на основе сравнения. Он делит входной список на две части: отсортированную часть и несортированную часть. Он неоднократно выбирает самый маленький (или самый большой) элемент из неотсортированной части и перемещает его в отсортированную часть.

Пример кода (Java):

public class SelectionSort {
    public static void selectionSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            int minIdx = i;
            for (int j = i + 1; j < n; j++) {
                if (arr[j] < arr[minIdx]) {
                    minIdx = j;
                }
            }
            int temp = arr[minIdx];
            arr[minIdx] = arr[i];
            arr[i] = temp;
        }
    }
// Example usage
    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        selectionSort(arr);
        for (int num : arr) {
            System.out.print(num + " ");  // Output: 11 12 22 25 34 64 90
        }
    }
}

Метод 3: Быстрая сортировка
Быстрая сортировка – это широко используемый алгоритм сортировки, основанный на подходе “разделяй и властвуй”. Он выбирает элемент в качестве опорного элемента и распределяет вокруг него другие элементы, при этом меньшие элементы размещаются перед опорным элементом, а элементы большего размера — после поворотного.

Пример кода (JavaScript):

function quickSort(arr) {
    if (arr.length <= 1) {
        return arr;
    }
    const pivot = arr[Math.floor(arr.length / 2)];
    const left = [];
    const right = [];
    for (const num of arr) {
        if (num < pivot) {
            left.push(num);
        } else if (num > pivot) {
            right.push(num);
        }
    }
    return [...quickSort(left), pivot, ...quickSort(right)];
}
// Example usage
const arr = [64, 34, 25, 12, 22, 11, 90];
const sortedArr = quickSort(arr);
console.log(sortedArr);  // Output: [11, 12, 22, 25, 34, 64, 90]

Сортировка данных по возрастанию и убыванию — распространенная задача в программировании. В этой статье мы рассмотрели три популярных метода сортировки: пузырьковая сортировка, сортировка выбором и быстрая сортировка. Каждый метод имеет свои преимущества и недостатки, а выбор метода зависит от таких факторов, как размер набора данных и используемый язык программирования. Поняв эти методы сортировки и примеры их кода, вы сможете применять их для эффективной сортировки данных в своих проектах.