1 //常用排序算法 sort   //打乱 random_shuffle
2 //merge 两个容器元素合并,并储存到另一容器中(相同的有序序列)
3 //reverse 将容器内的元素进行反转
4
5 #include<iostream>
6 #include<string>
7 #include<vector>
8 #include<algorithm>
9 #include<functional>
10
11 using namespace std;
12
13 void myPrint(int val)
14 {
15 cout << val << " ";
16 }
17
18 //降序
19 int Mysort(int v1, int v2)
20 {
21 return v1 > v2;
22 }
23 //排序
24 void test01()
25 {
26 vector<int>v;
27 v.push_back(30);
28 v.push_back(10);
29 v.push_back(90);
30 v.push_back(60);
31 v.push_back(80);
32 v.push_back(70);
33
34 //利用 sort 排序
35 sort(v.begin(), v.end());
36 for_each(v.begin(), v.end(), myPrint);
37 cout << endl;
38
39 //降序
40 sort(v.begin(), v.end(), greater<int>());
41 for_each(v.begin(), v.end(), myPrint);
42 cout << endl;
43
44 sort(v.begin(), v.end(), Mysort);
45 for_each(v.begin(), v.end(), myPrint);
46 cout << endl;
47 }
48
49 //打乱 random_shuffle
50 void test02()
51 {
52 srand((unsigned int)time(NULL));
53 vector<int>v2;
54 for (int i = 0; i < 10; i++)
55 {
56 v2.push_back(i);
57 }
58 cout << "初始化:" << endl;
59 for_each(v2.begin(), v2.end(), myPrint);
60
61 //打乱
62 cout << "\n第一次:" << endl;
63
64 random_shuffle(v2.begin(), v2.end());
65
66
67 for (vector<int>::iterator it = v2.begin(); it != v2.end(); it++)
68 {
69 cout<< * it << " ";
70 }
71 cout << endl;
72
73 cout << "第二次:" << endl;
74
75 for_each(v2.begin(), v2.end(), myPrint);
76
77 cout << endl;
78 }
79
80 //merge 两个有序数列 合并另一个容器中
81
82 void MyPrint(int z)
83 {
84 cout << z << " ";
85 }
86 void test03()
87 {
88 vector<int>v1;
89 vector<int>v2;
90
91 for (int i = 0; i < 11; i++)
92 {
93 v1.push_back(i);
94 v2.push_back(i + 2);
95 }
96 //目标容器
97 vector<int>vTarget;
98 //分配空间
99 vTarget.resize(v1.size()+v2.size());
100
101 merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin());
102
103 for_each(vTarget.begin(), vTarget.end(), MyPrint);
104 cout << endl;
105
106 }
107 //reverse 将容器内的元素进行反转
108 void test04()
109 {
110 vector<int>v;
111 v.push_back(200);
112 v.push_back(30);
113 v.push_back(80);
114 v.push_back(90);
115 v.push_back(10);
116 v.push_back(500);
117
118 cout << "没有反转" << endl;
119 for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
120 {
121 cout << *it << " ";
122 }
123 cout << endl;
124
125 reverse(v.begin(), v.end());
126 cout << "反转之后:" << endl;
127 for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
128 {
129 cout << *it << " ";
130 }
131 cout << endl;
132
133
134 }
135
136
137
138
139 int main()
140 {
141
142 test01();
143 test02();
144
145 test03();
146 test04();
147
148 system("pause");
149 return 0;
150 }

C++//常用排序算法 sort //打乱 random_shuffle //merge 两个容器元素合并,并储存到另一容器中(相同的有序序列) //reverse 将容器内的元素进行反转的更多相关文章

  1. javascript常用排序算法实现

    毕业后,由于工作中很少需要自已去写一些排序,所以那些排序算法都忘得差不多了,不过排序是最基础的算法,还是不能落下啦,于是找了一些资料,然后用Javascript实现了一些常用的算法,具体代码如下: & ...

  2. C++ STL 常用排序算法

    C++ STL 常用排序算法 merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列. 例如: vecIntA,vecIntB,vecIntC是用ve ...

  3. C++进阶 STL(3) 第三天 函数对象适配器、常用遍历算法、常用排序算法、常用算数生成算法、常用集合算法、 distance_逆序遍历_修改容器元素

    01昨天课程回顾 02函数对象适配器 函数适配器是用来让一个函数对象表现出另外一种类型的函数对象的特征.因为,许多情况下,我们所持有的函数对象或普通函数的参数个数或是返回值类型并不是我们想要的,这时候 ...

  4. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  5. 转载部长一篇大作:常用排序算法之JavaScript实现

    转载部长一篇大作:常用排序算法之JavaScript实现 注:本文是转载实验室同门王部长的大作,找实习找工作在即,本文颇有用处!原文出处:http://www.cnblogs.com/ywang172 ...

  6. Java 常用排序算法/程序员必须掌握的 8大排序算法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...

  7. 常用排序算法的python实现和性能分析

    常用排序算法的python实现和性能分析 一年一度的换工作高峰又到了,HR大概每天都塞几份简历过来,基本上一天安排两个面试的话,当天就只能加班干活了.趁着面试别人的机会,自己也把一些基础算法和一些面试 ...

  8. 常用排序算法java实现

    写在前面:纸上得来终觉浅.基本排序算法的思想,可能很多人都说的头头是到,但能说和能写出来,真的还是有很大区别的. 今天整理了一下各种常用排序算法,当然还不全,后面会继续补充.代码中可能有累赘或错误的地 ...

  9. 我们一起来排序——使用Java语言优雅地实现常用排序算法

    破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...

  10. Python实现常用排序算法

    Python实现常用排序算法 冒泡排序 思路: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完 ...

随机推荐

  1. RabbitMQ集成系统文章01---ABP VNext 分布式事务Event Bus 集成RabbitMQ

    1.在两个应用中都配置好要连接的RabbitMQ "RabbitMQ": { "Connections": { "Default": { & ...

  2. TienChin-课程管理-配置课程字典

    课程类型 课程适用人群

  3. Python中局部放大图案例

    例子一: 先上完整代码和效果图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.ins ...

  4. Python使用Paramiko实现SSH管理

    paramiko 是一个用于在Python中实现SSHv2协议的库,它支持对远程服务器进行加密的通信.目前该模块支持所有平台架构且自身遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,你 ...

  5. 驱动开发:内核读取SSDT表基址

    在前面的章节<X86驱动:挂接SSDT内核钩子>我们通过代码的方式直接读取 KeServiceDescriptorTable 这个被导出的表结构从而可以直接读取到SSDT表的基址,而在Wi ...

  6. Spark源码修改环境搭建

    过程中存在问题: maven编译scala工程报错java.lang.NoClassDefFoundError: scala/reflect/internal/Trees,解决方案看maven编译 1 ...

  7. 下载安装JDK 和 IntelliJ IDEA 和 ActiveMq

    wget http://yun.diandaxia.com/other/jdk-8u92-linux-x64.rpm rpm -ivh jdk-8u92-linux-x64.rpm wget http ...

  8. 图像列表组件(TImageList)

    TImageList 组件是一组同样尺寸的图像列表,每一个图像由它的Index值查询. 1.TImageList组件的典型用法 图形列表用于建立和管理大量的图像,主要是配合菜单或者工具栏按钮的使用.图 ...

  9. delphi 异常测试(我自己捕捉)

    由于最近的短信模块老是报SocketErorr错误,有的时候也不确定是哪里有问题,影响短信的销售,所以这里这样写,把出现的异常捕捉到显示出来.然后跳过这个不发送 ------------------- ...

  10. JS leetcode 实现strStr()函数 题解分析

    壹 ❀ 引 前几天心情比较浮躁,烦心事太多,偷懒了3天,还是继续刷leetcode.那么今天做的题目为实现 strStr() 函数.,原题如下: 给定一个 haystack 字符串和一个 needle ...