c++常用算法介绍
类似python里面一些调用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
将介绍一些同排序和合并松散关联的算法。STL算法部分主要由头文件 < algorithm>, < numeric>, < functional> 组成。要使用 STL中的算法函数必须包含头文件 < algorithm>,对于数值算法须包含 < numeric >,< functional> 中则定义了一些模板类,用来声明函数对象。
提示:以下是本篇文章正文内容,下面案例可供参考
一、排序算法
包含在头文件中
1.C++ sort()排序函数
sort() 只对 array、vector、deque 这 3 个容器提供支持.
对于指定区域内值相等的元素,sort() 函数无法保证它们的相对位置不发生改变。
sort ( iv4.begin(), iv4.end(), Comp); // 也可以使用自定义Comp()函数
vector<int> myvector{ 32, 71, 12, 45, 26, 80, 53, 33 };
//调用第一种语法格式,对 32、71、12、45 进行排序
sort(myvector.begin(), myvector.begin() + 4); //(12 32 45 71) 26 80 53 33
//调用第二种语法格式,利用STL标准库提供的其它比较规则(比如 greater<T>)进行排序
sort(myvector.begin(), myvector.begin() + 4, greater<int>()); //(71 45 32 12) 26 80 53 33
2.stable_sort() 函数
stable_sort() 函数完全可以看作是 sort() 函数在功能方面的升级版。换句话说,stable_sort() 和 sort() 具有相同的使用场景,就连语法格式也是相同的(后续会讲),只不过前者在功能上除了可以实现排序,还可以保证不改变相等元素的相对位置
stable_sort: 与sort类似,不过保留相等元素之间的顺序关系.
vector<int> myvector{ 32, 71, 12, 45, 26, 80, 53, 33 };
//调用第一种语法格式,对 32、71、12、45 进行排序
stable_sort(myvector.begin(), myvector.begin() + 4); //(12 32 45 71) 26 80 53 33
//调用第二种语法格式,利用STL标准库提供的其它比较规则(比如 greater<T>)进行排序
stable_sort(myvector.begin(), myvector.begin() + 4, std::greater<int>()); //(71 45 32 12) 26 80 53 33
3.partial_sort()函数
“部分排序”仅仅是对 partial_sort() 函数功能的一个概括
eg:存有 100 万个元素的容器,但我们只想从中提取出值最小的 10 个元素,不用对100万都排序。
p a r t i a l s o r t ( ) 函数会以交换元素存储位置的方式实现部分排序的。 \color{red}{partial_sort() 函数会以交换元素存储位置的方式实现部分排序的。} partialsort()函数会以交换元素存储位置的方式实现部分排序的。
具体来说,partial_sort() 会将 [first, last) 范围内最小(或最大)的 middle-first 个元素移动到 [first, middle) 区域中,并对这部分元素做升序(或降序)排序。
vector<int> myvector{ 3,2,5,4,1,6,9,7};
//以默认的升序排序作为排序规则,将 myvector 中最小的 4 个元素移动到开头位置并排好序
partial_sort(myvector.begin(), myvector.begin() + 4, myvector.end());//1 2 3 4 5 6 9 7
C++ partial_sort_copy()排序函数
partial_sort_copy() 函数的功能和 partial_sort() 类似,唯一的区别在于,前者不会对原有数据做任何变动,而是先将选定的部分元素拷贝到另外指定的数组或容器中,然后再对这部分元素进行排序。
4.nth_element()函数
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。