冒泡排序(C++)
#include<iostream>
using namespace std;
int main()//冒泡排序
{
int array[] = {6,48,651,49,641,83,498,456,16,698,665};//定义数组
cout << "排序前的数组为" << endl;
for (int i = 0; i < 11; i++)//输出定义的数组
{
cout << array[i] << endl;
}
int start = 0;//定义数组第一个变量的下标为0
//数组内数字第一位为0,最后一位为n-1
//定义数组最后一个变量的下标为(数组字节长度/数组内单个数据长度-1)
int end = sizeof(array) / sizeof(array[0])-1;
cout << "\nend=" << end << endl;//输出数组最后一位的下标
while (start < end)//当第一位下标小于最后最后一位时,执行循环(每执行循环一次end-1直到end=1)
{
for (int i = 0; i < end; i++)//数组内循环,得到最大值将其放在数组最后一位
{
if (array[i] > array[i + 1])//如果当前一位大于后一位
{
//前一位的值和后一位互换
int temp = array[i];//把当前值赋给临时变量temp
array[i] = array[i + 1];//后一位的值转给前一位
array[i + 1] = temp;//后一位获得前一位的值
}
}
end--;//end-1,for循环执行少一次
}
cout << "排序后的数组为" << endl;//输出排序后的数组
for (int i = 0; i < 11; i++)
{
cout << array[i] << endl;
}
system("pause");
return 0;
}
运行结果: