C++之冒泡排序法

冒泡排序(Bubble Sort),是计算机科学领域的简单且经典的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
代码如下:
#include
using namespace std;
#define NUM 100
void bubble_sort(int _a[],int _length);//声明

int main()
{
int i, m, a[NUM]; //声明所需的变量
cout << “请输入数组的长度:”;
cin >> m; //输入数组的长度
cout << “请输入数组元素的值:”;
for ( i = 0; i < m; i++) //遍历输入数组元素的值
{
cin >> a[i];
}
cout << “输入的元素值分别是:”;
for (i = 0; i < m; i++) //遍历输出
cout << a[i] << " ";
cout << endl;
bubble_sort(a,m); //调用

cout << endl;
system("pause");
return 0;

}

void bubble_sort(int _a[],int _length) //实现
{
int i, j, temp;
for (i = 0; i < _length - 1; i++) //排序:重点(i代表循环的次数)
{
for (j = 0; j < _length - 1 - i; j++) //(j代表每循环i次,就得比较j次)
{
if (_a[j] > _a[j + 1]) //(第一个和第二个元素比较,加入第一个元素值大,就交换位置,但是需要借助一个临时变量,不可直接交换值。)
{
temp = _a[j];
_a[j] = _a[j + 1];
_a[j + 1] = temp;
}
}
}
cout << “排序(从小到大):”;
for (i = 0; i < _length; i++) //输出
{
cout << _a[i] << " ";
}
}
C++之冒泡排序法_第1张图片

你可能感兴趣的:(C++之冒泡排序法)