库函数之sort:
// 语法:
#include <algorithm>
void sort(iterator start,iterator end);
void sort(iterator start,iterator end,StritWeakOrdering cmp);
/*
1,sort()算法将在区间 [start,end)中的元素升序排列。
2,如果两个元素相等,不能保证其维持原来顺序。
3,默认使用<操作符,如果定义比较函数cmp,则使用cmp。
4,sort()算法内部是introsort(内观排序,自省的快排)算法
5,时间复杂度O(N*log(N)) (平均和最坏)
例子:(降序排列)
bool cmp( int a, int b )
{
return a > b;
}
sort( v.begin(), v.end(), cmp );
附:introsort原理
(1)三点中值法。取中间大小的为PIVOT;
(2)分割函数,使用中间左右两部分:L< M < R, 返回M;
(3)左部分递归调用,右部分在循环中处理;
(4)若分割层次大于2*K( K <= lg2N),则调用heapsort,防止退化为N2..;
(5)若当前进入的子序列长度< 16,则退出;(宗旨是调用QUITSORT使之基本有序)
(6)当整个序列基本有序后,直接调用简单插入排序。
*/
// 附:stable_sort partial_sort nth_element() merges()
// 语法:
#include <algorithm>
void stable_sort( iterator start, iterator end );
void stable_sort( iterator start, iterator end, StrictWeakOrdering cmp );
/*
1,升序排列。
2,稳定排序。其代价是增加了时间复杂度,最坏情况下为O(N*(log(N))^2)。
*/
#include <algorithm>
void partial_sort( iterator start, iterator middle, iterator end );
void partial_sort( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );
/*
1,将区间[start,end)中的前N个元素升序排列;
2,N由start与middle确定。
*/
#include <algorithm>
void nth_element( iterator start, iterator middle, iterator end );
void nth_element( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );
#include <algorithm>
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result );
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result, StrictWeakOrdering cmp );
// 语法:
#include <algorithm>
void sort(iterator start,iterator end);
void sort(iterator start,iterator end,StritWeakOrdering cmp);
/*
1,sort()算法将在区间 [start,end)中的元素升序排列。
2,如果两个元素相等,不能保证其维持原来顺序。
3,默认使用<操作符,如果定义比较函数cmp,则使用cmp。
4,sort()算法内部是introsort(内观排序,自省的快排)算法
5,时间复杂度O(N*log(N)) (平均和最坏)
例子:(降序排列)
bool cmp( int a, int b )
{
return a > b;
}
sort( v.begin(), v.end(), cmp );
附:introsort原理
(1)三点中值法。取中间大小的为PIVOT;
(2)分割函数,使用中间左右两部分:L< M < R, 返回M;
(3)左部分递归调用,右部分在循环中处理;
(4)若分割层次大于2*K( K <= lg2N),则调用heapsort,防止退化为N2..;
(5)若当前进入的子序列长度< 16,则退出;(宗旨是调用QUITSORT使之基本有序)
(6)当整个序列基本有序后,直接调用简单插入排序。
*/
// 附:stable_sort partial_sort nth_element() merges()
// 语法:
#include <algorithm>
void stable_sort( iterator start, iterator end );
void stable_sort( iterator start, iterator end, StrictWeakOrdering cmp );
/*
1,升序排列。
2,稳定排序。其代价是增加了时间复杂度,最坏情况下为O(N*(log(N))^2)。
*/
#include <algorithm>
void partial_sort( iterator start, iterator middle, iterator end );
void partial_sort( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );
/*
1,将区间[start,end)中的前N个元素升序排列;
2,N由start与middle确定。
*/
#include <algorithm>
void nth_element( iterator start, iterator middle, iterator end );
void nth_element( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );
#include <algorithm>
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result );
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result, StrictWeakOrdering cmp );
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ahcaigen/archive/2010/02/27/5332627.aspx
分享到:
相关推荐
在C++编程语言中,`std::sort`是一个非常重要的库函数,用于对给定的元素序列进行排序。它属于`<algorithm>`头文件,可以对任何可迭代的容器(如数组、向量等)进行排序。本教程主要针对C++初学者,讲解如何使用`...
- `algorithm`:包含了一系列通用的算法,如排序(`sort()`)、查找(`find()`)、交换(`swap()`)等。 - `vector`:模板类,提供了动态数组的功能,可以方便地添加、删除元素。 3. **C++特有的库函数** C++...
`algorithm`库包含了丰富的算法,如排序(`sort`)、查找(`find`)等;`fstream`库用于文件操作,如读写文件。 在学习C和C++库函数时,查阅资料是必不可少的。文档如"C语言资料大全1.0.chm"和"C语言标准库函数大全...
C++标准库中包含了许多容器(如`std::vector`、`std::list`)、迭代器、算法(如`std::sort`排序、`std::find`查找)以及智能指针等。`iostream`库是C++输入/输出系统的核心,包含了`std::cin`、`std::cout`等对象,...
`std::sort`函数用于对序列进行排序;`std::ifstream`和`std::ofstream`则分别用于文件输入和输出。 MFC是微软提供的一个面向对象的C++类库,主要用于构建Windows应用程序。它封装了Windows API,简化了窗口、...
C++库函数包括许多模块,如输入/输出流(`<iostream>`)、容器(如`std::vector`、`std::map`)、算法(如`std::sort`、`std::find`)、字符串处理(`<string>`)、异常处理(`<exception>`)等。每个模块都包含了...
查找算法是STL中最常用的一类算法之一,主要包括以下13种: 1. **`adjacent_find`**:查找相邻的重复元素对,并返回指向这对元素的第一个元素的迭代器。如果未找到,则返回结束迭代器。 - 重载版本允许用户指定...
例如,`std::sort`可以对容器内的元素进行排序,`std::find`可以查找特定值的位置,`std::for_each`可以对容器中的每个元素应用一个函数或函数对象。这些算法的使用通常结合迭代器来指定操作范围,使得代码简洁且...
* 排序算法(sort、stable_sort等) * 搜索算法(find、search等) * 遍历算法(for_each、transform等) * 合并算法(merge、set_union等) 这些算法提供了高效的数据处理机制,使得程序员可以快速开发高效的程序...
C++语言则在C的基础上增加了面向对象的特性,并引入了自己的库,如STL(Standard Template Library),包括容器(如vector、list、map)、算法(如sort、find)、迭代器等。STL的使用极大地提高了代码的可读性和复用...
4. **算法**:`<algorithm>`头文件提供了大量通用算法,如排序(`std::sort`)、搜索(`std::find`)、复制(`std::copy`)和变换(`std::transform`)等,这些都是编写高效代码的重要工具。 5. **智能指针**:在...
《标准C/C++库函数手册》是一本涵盖了C和C++编程语言中核心库函数的详尽指南。这本书深入解析了这两个编程语言的基础和高级功能,帮助开发者更好地理解和利用标准库来提高代码效率和可读性。以下是其中涵盖的一些...
在C/C++编程中,库函数和标准模板库(Standard Template Library, STL)是开发者不可或缺的工具。这些库提供了丰富的功能,使得程序员可以更高效、更便捷地编写代码。本资源"库函数以及文件大全(经典).chm"很可能...
`std::sort`函数可以对任何可比较的元素序列进行排序;`std::map`则提供关联容器,以键值对的形式存储数据。 在学习C和C++库函数时,初学者需要关注以下几个关键点: 1. **类型转换**:C++中的`static_cast`、`...
它们的库函数是其强大功能的重要组成部分,为程序员提供了丰富的工具来处理各种任务。本文将深入探讨C和C++的标准库函数,帮助读者更好地理解和运用这些库。 C语言库函数主要集中在ANSI/ISO C标准库中,也称为C运行...
此外,C++标准库还包含了大量的算法,如`sort`、`find`、`count`等,这些都是C++程序员日常开发中不可或缺的工具。 资料中可能未涵盖MFC(Microsoft Foundation Classes),这是一个由微软提供的C++类库,主要用于...
C++标准模板库(STL)中的`vector`、`list`、`map`等容器,以及`algorithm`库中的`sort`、`find`等算法,极大地提高了代码的可读性和效率。 8. **异常处理**: C++支持异常处理,通过`try`、`catch`和`throw`...
7. **算法库**:C++的algorithm库包含了一系列通用的算法,如排序(sort)、查找(find)、拷贝(copy)等,这些算法都具有良好的效率和泛化能力。 8. **字符串处理库**:string类提供了对字符串的操作,如拼接、...
例如,C++的`std::sort`用于对容器中的元素进行排序,而`std::binary_search`可以在已排序的容器中查找指定元素。Python的`sorted`函数可以对任何可迭代对象进行排序,`bisect`模块提供了二分查找功能。 在图形数据...
- `sort`:对容器内的元素进行排序。 - `find`:在容器中查找指定元素。 - `count`:计算容器中特定元素的个数。 - `transform`:对容器中的每个元素应用一个函数,并将结果存入另一个容器。 - `copy`:将源...