一.排序算法---快速排序

1.快速排序

1)快速排序(自定义实现)

Quick_Sort 函数:它采用一个整数数组 arr,以及两个索引 beginend,表示排序范围的起始和结束位置。如果 begin 大于或等于 end,则数组无需排序,因此直接返回。否则,它选择一个基准元素(通常是数组的第一个元素),然后通过比较和交换操作,将数组分成两部分:小于基准的元素和大于基准的元素。然后,它递归地对这两部分数组进行排序。

#include <iostream>

void Quick_Sort(int arr[], int begin, int end) {
    if (begin >= end) // 基本情况:当begin大于等于end时,无需排序
        return;

    int tmp = arr[begin];
    int i = begin;
    int j = end;

    while (i != j) {
        while (arr[j] >= tmp && j > i)
            j--;
        while (arr[i] <= tmp && j > i)
            i++;

        if (j > i) {
            int t = arr[i];
            arr[i] = arr[j];
            arr[j] = t;
        }
    }

    arr[begin] = arr[i];
    arr[i] = tmp;

    Quick_Sort(arr, begin, i - 1); // 递归排序左子数组
    Quick_Sort(arr, i + 1, end);   // 递归排序右子数组
}

int main() {
    int a[] = { 5, 2, 3, 9, 8, 7, 6, 1, 4 }; // 修正数组的声明
    int length = sizeof(a) / sizeof(a[0]);  // 计算数组长度
    Quick_Sort(a, 0, length - 1);          // 调用快速排序函数

    for (int i = 0; i < length; i++) {
        std::cout << a[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}

2)快速排序(std::使用)

使用 std::sort 对数组进行升序排序

std::sort(myArray, myArray + arraySize);

#include <iostream>
#include <algorithm> // 包含标准排序函数

int main() {
    int a[] = {5, 2, 3, 9, 8, 7, 6, 1, 4};
    int length = sizeof(a) / sizeof(a[0]);

    std::sort(a, a + length); // 使用 std::sort 进行排序

    for (int i = 0; i < length; i++) {
        std::cout << a[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}

 

posted @ 2023-10-14 18:02  Sairate  阅读(5)  评论(0编辑  收藏  举报