- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 排序及相关算法 标准C++库中的算法简介 有序结构上的集合操作 includes() 一序列为另一序列的子序列时为真 set_union() 构造两个集合的有序并集 set_intersection() 构造两个集合的有序交集 set_difference() 构造两个集合的有序差集 set_symmetric_difference() 构造两个集合的有序对称差集(并-交) 堆操作 push_heap() 向堆中加入元素 pop_heap() 从堆中弹出元素 make_heap() 从序列构造堆 sort_heap() 给堆排序 最大和最小 min() 返回两个元素最小值 max() 返回两个元素最大值 min_element() 返回序列中的最小元素的位置 max_element() 返回序列中的最大元素的位置 词典比较 lexicographical_compare() 两个序列按字典序的第一个在前 排列生成器 next_permutation() 按字典序的下一个排列 prev_permutation() 按字典序的前一个排列 * 例16: 排序算法举例 #includeIOSTREAM #include VECTOR #include algorithm #include functional using namespace std; const int n=8; ? int main(){ int array[n]={4,3,7,2,2,3,8,5}; vectorint ivec1(array,array+n); ostream_iteratorint output(cout, ); //输出容器中最大和最小的元素 cout*max_element(ivec1.begin(),ivec1.end())endl; cout*min_element(ivec1.begin(),ivec1.end())endl; //利用部分排序算法排序 partial_sort(ivec1.begin(),ivec1.begin()+3,ivec1.end()); copy(ivec1.begin(),ivec1.end(),output); coutendl; 标准C++库中的算法简介 * 例16: 排序算法举例 //部分排序,并将排序的拷贝到新的容器 vectorint ivec2(5,0); partial_sort_copy(ivec1.begin(),ivec1.begin()+5,ivec2.begin(),ivec2.end()); copy(ivec2.begin(),ivec2.end(),output); coutendl; //进行全区间的排序,默认为升序 sort(ivec1.begin(),ivec1.end()); copy(ivec1.begin(),ivec1.end(),output); coutendl; //利用二分法查找确定元素可插入的迭代器位置 cout*lower_bound(ivec1.begin(),ivec1.end(),5)endl; cout*upper_bound(ivec1.begin(),ivec1.end(),5)endl; //利用合并算法将两个向量容器合并,并拷贝到新的数组中 int array1[5+n]; merge(ivec1.begin(),ivec1.end(),ivec2.begin(),ivec2.end(),array1); copy(array1,array1+13,output); coutendl; } 标准C++库中的算法简介 8 2 2 2 3 7 4 3 8 5 2 2 3 4 7 2 2 3 3 4 5 7 8 5 7 2 2 2 2 3 3 3 4 4 5 7 7 8 运行结果: 标准C++库中的算法简介 * * 数值算法 数值算法包括4个算法,分别为accumulate(累积算法)、partial_sum(累加部分元素和算法)、adjacent_difference(相邻元素差)和inner_product(内积算法)。我们使用数值算法需要包含numeric头文件。 标准C++库中的算法简介 * 例17:数值算法实例 #includeiostream #include vector #include numeric//所需要包含的头文件 using namespace std;
文档评论(0)