• C++之常用的排序算法


    C++之常用的排序算法

    在这里插入图片描述

    sort

    在这里插入图片描述

    #include
    using namespace std;
    #include
    #include
    #include
    void Myptint(int val)
    {
    	cout << val << " ";
    }
    
    void test()
    {
    	vector v;
    	v.push_back(10);
    	v.push_back(20);
    	v.push_back(50);
    	v.push_back(30);
    	v.push_back(40);
    
    	//利用sort进行排序(默认是升序)
    	sort(v.begin(), v.end());
    	for_each(v.begin(),v.end(), Myptint);
    	cout << endl;
    
    	//改变为降序
    	sort(v.begin(), v.end(), greater());
    	for_each(v.begin(), v.end(), Myptint);
    	cout << endl;
    }
    
    int main()
    {
    	test();
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这里插入图片描述

    random_shuffle

    在这里插入图片描述

    #include
    using namespace std;
    #include
    #include
    #include
    void Myptint(int val)
    {
    	cout << val << " ";
    }
    
    void test()
    {
    	//随机种子
    	srand((unsigned int)time(NULL));
    
    	vector v;
    	for (int i = 0; i < 10; i++)
    	{
    		v.push_back(i);
    	}
    	random_shuffle(v.begin(), v.end());
    	for_each(v.begin(), v.end(), Myptint);
    	cout << endl;
    }
    
    int main()
    {
    	test();
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在这里插入图片描述

    merge

    在这里插入图片描述

    #include
    using namespace std;
    #include
    #include
    
    void Myptint(int val)
    {
    	cout << val << " ";
    }
    
    void test()
    {
    	vector v;
    	vectorv2;
    	for (int i = 0; i < 10; i++)
    	{
    		v.push_back(i);
    		v2.push_back(i+1);
    	}
    	//目标容器
    	vectorTarget;
    	//提前给目标容器分配空间
    	Target.resize(v.size()+v2.size());
    
    	merge(v.begin(), v.end(), v2.begin(), v2.end(), Target.begin());
    
    	for_each(Target.begin(), Target.end(), Myptint);
    	cout << endl;
    }
    
    int main()
    {
    	test();
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这里插入图片描述
    在这里插入图片描述

    reverse

    在这里插入图片描述

    #include
    using namespace std;
    #include
    #include
    
    void Myptint(int val)
    {
    	cout << val << " ";
    }
    
    void test()
    {
    	vector v;
    	for (int i = 0; i < 10; i++)
    	{
    		v.push_back(i);
    	}
    	//反转前
    	cout << "反转前" << endl;
    	for_each(v.begin(), v.end(), Myptint);
    	cout << endl;
    	cout << "反转后" << endl;
    	reverse(v.begin(), v.end());
    	for_each(v.begin(), v.end(), Myptint);
    	cout << endl;
    }
    
    int main()
    {
    	test();
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    在这里插入图片描述

  • 相关阅读:
    有限责任公司法人职责有哪些
    大米自动化生产线的运作原理与科技创新
    揭秘OLED透明拼接屏的参数规格:分辨率、亮度与透明度全解析
    Java面经整理(2)
    传奇开服架设之地图索引编辑器以及安装问题排查教程
    开源音乐播放器!
    uniapp中input的disabled属性
    a += 1 += 1为什么是错的?
    java-php-python-ssm篮球资讯网站计算机毕业设计
    Revit插件实现【快速扣减】的两种操作
  • 原文地址:https://blog.csdn.net/qq_45159887/article/details/134564790