冒泡排序与选择排序对比(C++)

之前现场做理邦的招聘笔试题,让写C++的冒泡排序,一下子没想起来(就是这么蠢)

笨 æ头

只大体记得原理是将大(小)冒泡到最后(最前),然后凭感觉写,回来发现结果也是对的,跟网上一对比,才发现自己写成了选择排序(没学过算法)

冒泡排序与选择排序对比(C++)_第1张图片

然而笔试可能就这么挂了

冒泡排序与选择排序对比(C++)_第2张图片

一个教训,记录一下:

主要区别:(图侵删)

1.冒泡排序

冒泡排序是对相邻的值进行比较和交换

冒泡排序与选择排序对比(C++)_第3张图片

2.选择排序

是将第i个数与其后面的每一个数进行比较,若大于和小于则及进行交换

冒泡排序与选择排序对比(C++)_第4张图片

C++程序:

#include 

//冒泡排序

using namespace std;

int main()
{
	int a[] = { 12,15,2,45,87,63,45,12,85,13 };
	int n = sizeof(a) / sizeof(int);
	cout << n << endl;
	for (int i = 0; i < n; i++)
		cout << a[i] << "\t";
	cout << endl;

	for (int i = 0; i < n-1; i++)  //外层n-1次
	{
		for (int j=0;j a[j + 1])//从小到大排序
			{
				int temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	}

	for (int i = 0; i < n; i++)
		cout << a[i] << "\t";

	cin >> n;//防止控制台退出
}
#include 

//选择排序
using namespace std;

int main() 
{
	int a[] = { 12,15,2,45,87,28,45,12,85,100 };
	int n = sizeof(a)/sizeof(int);
	cout << n << endl;
	for(int i=0;i> n;//防止控制台自动退出
}

 

你可能感兴趣的:(学习笔记)