#Z0310. sort排序

sort排序

No testdata at current.

对于一个数组,通过对数组中的元素进行交换,我们可以将数组中的元素按从大到小的或从小到大的顺序排列。

当我们希望对数组中的元素进行排序时,我们可以使用 C++ 为我们提供的工具——sort。有了它,你再也不用纠结如何完成排序了。

sort是一个 C++ 已经为我们实现好的工具,当我们要用它时,需要先引入一个算法的库——<algorithm> 。需要说明的是,sort可以排序任何类型的元素,包括我们自己定义的结构体。

我们将需要在 C++ 文件的开始位置加上:

#include <algorithm>

对于下面这段程序:

1 #include <iostream> 
2 #include <algorithm> 
3 using namespace std; 
4 int main() { 
5   int arr[] = {2, 4, 5, 3, 1}; 
6   return 0; 
7 } 

通过写

sort(arr, arr + 5); 

我们可以将arr中从开始的元素到第 5 个元素按从小到大的顺序排列。

而如果我们写:

sort(arr + i, arr + j); 

那么被排序的将是arr[i]到arr[j - 1],其他元素将保持原位置。

如果希望arr中的元素从大到小排列(或按照某一个规则进行排列),我们可以再为sort传入第三个参数——“排序方法”:

 sort(arr, arr + 5, greater<int>()); 

其中,greater表示“更大”的意思,<int>表示待排序的数组中的元素类型为int,整个这行代码表示让一个元素类型为整数的数组从大到小排序。 我们的程序会变为:

1 #include <iostream> 
2 #include <algorithm> 
3 using namespace std; 
4 int main() { 
5   int arr[] = { 2, 4, 5, 3, 1 }; 
6   sort(arr, arr + 5, greater<int>()); 
7   return 0; 
8 }