C++之常用的排序算法

C++之常用的排序算法

C++之常用的排序算法_第1张图片

sort

C++之常用的排序算法_第2张图片

#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;
}

C++之常用的排序算法_第3张图片

random_shuffle

C++之常用的排序算法_第4张图片

#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;
}

C++之常用的排序算法_第5张图片

merge

C++之常用的排序算法_第6张图片

#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;
}

C++之常用的排序算法_第7张图片
C++之常用的排序算法_第8张图片

reverse

C++之常用的排序算法_第9张图片

#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;
}

C++之常用的排序算法_第10张图片

你可能感兴趣的:(C++,c++,排序算法,开发语言)