您的位置:首页 > 职场人生

程序员必会排序算法之冒泡排序

2020-08-25 22:46 716 查看

冒泡排序
思想:相邻元素做比较,经过一趟排序把最大的元素沉到序列最后。在冒泡排序中经常会出现这种情况,经过几趟排序后所有元素已经有序排列,但是还没有到达循环结束的条件,这样后面的比较就没有意义了。可以通过加入一个标志位flag来进行优化,flag = 1 表示本趟排序没有元素交换,所有元素已经有序排列,可以结束。

#include <iostream>
using namespace std;

//冒泡排序
void bubbleSort(int array[], int len)
{
int flag = 1;
for (int i = 0; i < len - 1; i++)
{
if (flag == 0)
{
break;
}
flag = 0;
for (int j = 0; j < len - i; j++)
{
if (array[j] < array[j + 1])
{
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
flag = 1;
}
}
}
}

//打印数组
void printArray(int array[], int len)
{
for (int i = 0; i < len; i++)
{
cout << array[i] << " ";
}
cout << endl;
}

int main()
{
int array[5] = { 1, 8, 3, 10, 2 };
int length = sizeof(array) / sizeof(array[0]);
printArray(array, length);
bubbleSort(array, length);
printArray(array, length);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: