c++常见算法

枚举算法:找到数组中最大值

//找出数组中最大的元素
int array[5] = { 300,350,200,400,250 };
int max = 0;
for (int i = 0; i < 5; i++)
{
	if (array[i] > max)
	{
		max = array[i];
	}
}
cout << max;

倒置算法:数组的倒置

	//数组元素倒置
	int array[5] = { 1,2,3,4,5 };//定义数组
	for (int i = 0; i < 5; i++)//反转前
	{
		cout << array[i] << endl;
	}
	int start = 0;//起始点下标
	int end = sizeof(array) /sizeof(array[1])-1;
	int temp=0;//末位点下标

	while (start<=end)
	{
		temp = array[start];//首末元素内容交换
		array[start] = array[end];
		array[end] = temp;
		start++;
		end--;
	}
	for (int i = 0; i < 5; i++)//输出反转后的数组
	{
		cout << array[i] << endl;
	}


排序算法:冒泡排序

//冒泡排序:先找出最大的数值,然后不断找出更小的数值
//1.比较相邻的元素,如果A比B大,就交换
//2.对每一对相邻的元素作比较,找出第一个最大值
//3.重复以上步骤,每次比较次数-1,直到不需要比较
//排序总轮数=元素个数-1
//每轮对比次数=元素个数-排序轮数-1
int array[9] = { 4,2,8,0,5,7,1,3,9 };
cout << "排序前:" << endl;
for (int i = 0; i < 9; i++)
{
	cout << array[i] << "\t";
	if (i == 8)
		cout << endl;
}
//排序
//外层循环为排序总轮数=元素个数-1
for (int i = 0; i < 9-1; i++)
{
	//内层循环为每轮对比次数=元素个数-排序轮数-1
	for (int j = 0; j < 9 - i - 1; j++)
	{
		if (array[j] > array[j + 1])
		{
			int temp = array[j];
			array[j] = array[j + 1];
			array[j + 1] = temp;
		}
	}
}

for (int i = 0; i < 9 ; i++)
{
	cout<< array[i] << "\t";
	if (i == 8)
		cout << endl;
}

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