21xrx.com
2024-12-22 21:12:35 Sunday
登录
文章检索 我的文章 写文章
C++中的排序方法及使用方法详解
2023-06-26 19:21:28 深夜i     --     --
排序方法 C++ 使用方法 详解

在C++中,排序是一个常用的操作,可以对一组数据进行排序,从而得到有序的序列。C++中提供了多种排序方法,这里就为大家详细介绍一下。

1. sort()函数

sort()函数是C++中最常用的排序函数,其使用方法也非常简单。

示例代码如下:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

  int arr[5] = 5;

  sort(arr, arr + 5);

  for (int i = 0; i < 5; i++) {

    cout << arr[i] << " ";

  }

  return 0;

}

该程序使用了sort函数对一个整型数组进行了排序,输出结果为1 2 3 4 5。

sort()函数的参数非常简单,第一个参数是要排序的数组的起始地址,第二个参数是要排序的数组的结束地址,第三个参数是一个函数指针,用于指定排序的方式。

默认情况下,sort()函数使用的是从小到大的排序方式,如果需要从大到小排序,则需要自定义比较函数。

2. stable_sort()函数

stable_sort()函数也是C++中的一个常用排序函数,与sort()函数不同的是,stable_sort()函数排序时可以保证相等元素的顺序不变。

示例代码如下:


#include <iostream>

#include <algorithm>

using namespace std;

struct Node

  int value;

  string str;

;

bool cmp(Node a, Node b)

  return a.value < b.value;

int main() {

  Node data[5] = { "A", "B", 3, "D", 2};

  stable_sort(data, data + 5, cmp);

  for (int i = 0; i < 5; i++) {

    cout << data[i].value << "," << data[i].str << " ";

  }

  return 0;

}

该程序使用了stable_sort()函数对一个结构体数组进行排序,输出结果为1,D 2,B 2,E 3,A 3,C。

可以看到,程序对结构体数组进行了排序,并保留了相等元素的顺序。

3. partial_sort()函数

partial_sort()函数是C++中的又一个排序函数,它使用的是部分排序的方式。partial_sort()函数可以将一个数组的前k个数排列在前k个位置,其余的数不保证其顺序。

示例代码如下:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

  int arr[10] = 0;

  partial_sort(arr, arr + 3, arr + 10);

  for (int i = 0; i < 10; i++) {

    cout << arr[i] << " ";

  }

  return 0;

}

该程序使用了partial_sort()函数对一个整型数组进行排序,只将前三个元素排列好,并打印输出结果3 2 1 0 6 9 8 7 5 4。

可以看到,只有前三个元素被排列好,其余元素的顺序随机。

4. nth_element()函数

nth_element()函数也是C++中的又一个常用排序函数,它使用的是快速排序的算法,可以将一个数组中的第k小(或者第k大)的元素放到该数组第k位上。

示例代码如下:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

  int arr[10] = 5;

  nth_element(arr, arr + 4, arr + 10);

  for (int i = 0; i < 10; i++) {

    cout << arr[i] << " ";

  }

  return 0;

}

该程序使用了nth_element()函数对一个整型数组进行排序,将第五小的元素放到该数组的第五个位置上,并打印输出结果0 1 2 3 4 9 8 7 6 5。

可以看到,第五小的元素6,被放到了该数组的第五个位置上。

总结

C++中提供了多个排序函数,可以根据不同的需求选择不同的排序方法。sort()函数是最常用的排序方法,可以方便地对数组按照从小到大排序。如果需要保留相等元素的顺序,则需要使用stable_sort()函数。partial_sort()函数可以将前k个元素排列好,对于较大的数组,可以控制排序的区间,提高排序的效率。nth_element()函数可以找出数组中第k小(或者第k大)的元素,并将其放到该数组的第k个位置上。掌握这些排序函数可以大大提高编程效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复