工作原理
将该数组进行扫描,发现前面一个数据比后面一个数据大,就进行交换。
撸代码
首先定义一个数组
int arr[6] = { 10,5,4,9,7,6 };
循环的时候第一个和第二个进行交换,但是当第二个数据要赋值给第一个的时候,第二个已经被重新赋值过了,所以在整个临时变量
int temp;
下面这是第一次扫描的代码,目的是判断数据的大小来决定是否交换,循环的次数决定数组有多少元素,这段代码会被作为最底层的基础来完成整个冒泡排序。
for (int i = 0; i < 5 - j; i++)
{
if (arr[i] > arr[i + 1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
循环执行上述代码,循环次数还是决定数组有几个元素。
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5 - j; i++)
{
if (arr[i] > arr[i + 1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
在把整个结果用for打印出来
for (int i = 0; i < 6; i++)
{
cout << arr[i] << " ";
}
完整代码为如下所示
#include<iostream>
using namespace std;
int main()
{
int arr[6] = { 10,5,4,9,7,6 };
int temp;
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5 - j; i++)
{
if (arr[i] > arr[i + 1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
for (int i = 0; i < 6; i++)
{
cout << arr[i] << " ";
}
}