C++程序 将数组元素按升序排序

C++程序 将数组元素按升序排序

C ++中,可以使用各种算法来对数组元素进行排序,其中最常用的是使用STL中的sort函数。sort函数可以按升序或降序方式对数组进行排序。

sort函数

sort函数能够自动识别数组元素的数据类型,并根据指定的排序方式对数组进行排序。以下是sort函数的基本语法:

#include <algorithm>

sort(first, last, cmp);

其中,firstlast表示要排序的元素的迭代器范围,cmp是指定的比较函数。如果不指定比较函数,则默认按升序方式排序。

按升序排序

以下是一个示例程序,用于将数组元素按升序方式排序:

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int arr[] = {5, 3, 1, 4, 2};
    int n = sizeof(arr) / sizeof(arr[0]);

    sort(arr, arr + n);

    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

    return 0;
}

输出结果为:

1 2 3 4 5

在上面的代码中,定义了一个整型数组arr,长度为5。使用sizeof运算符和数组下标操作符可以得到数组的长度n

然后,使用sort函数对数组元素进行排序,排序结果存储在arr中。

最后,使用一个循环遍历数组,打印出每个元素。

按降序排序

如果要按降序方式对数组进行排序,可以传递一个自定义的比较函数作为sort函数的第三个参数:

#include <iostream>
#include <algorithm>

using namespace std;

bool cmp(int a, int b) {
    return a > b;
}

int main() {
    int arr[] = {5, 3, 1, 4, 2};
    int n = sizeof(arr) / sizeof(arr[0]);

    sort(arr, arr + n, cmp);

    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

    return 0;
}

输出结果为:

5 4 3 2 1

在上面的代码中,定义了一个自定义的比较函数cmp,它返回true表示第一个参数比第二个参数大,即需要将第二个参数排在前面,从而实现按降序排序。然后将该函数作为第三个参数传递给sort函数。

自定义类型排序

除了基本数据类型之外,也可以使用sort函数对结构体等自定义类型的元素进行排序。在这种情况下,需要定义一个比较函数来指定排序方式。

#include <iostream>
#include <algorithm>

using namespace std;

struct Person {
    string name;
    int age;
};

bool cmp(Person a, Person b) {
    return a.age < b.age;
}

int main() {
    Person people[] = {
        {"Alice", 21},
        {"Bob", 23},
        {"Charlie", 19},
        {"David", 27},
        {"Eve", 25}
    };
    int n = sizeof(people) / sizeof(people[0]);

    sort(people, people + n, cmp);

    for (int i = 0; i < n; i++) {
        cout << people[i].name << ", " << people[i].age << endl;
    }

    return 0;
}

输出结果为:

Charlie, 19
Alice, 21
Bob, 23
Eve, 25
David, 27

在上面的代码中,定义了一个结构体Person,包含姓名和年龄两个成员变量。然后定义了一个自定义的比较函数cmp,它返回true表示第一个参数比第二个参数小,即需要将第一个参数排在前面,从而实现按年龄升序排序。最后将该函数作为第三个参数传递给sort函数。

结论

使用C ++程序对数组元素进行排序是十分常见的操作。通过使用STL中的sort函数,可以轻松实现升序和降序排序,并且可以方便地自定义比较函数来对自定义类型进行排序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例