using namespace std;
//降序
void BubbleSort(int *a, int arraySize)
{
int i, j, temp;
typedef int Status;
Status flag = 1;
for (i = 1; i < arraySize && flag; i++)
{
flag = 0;
for (j = arraySize - 1; j > i; j--)
{
if (a[j] > a[j - 1])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
flag = 1;
}
}
}
}
//升序
void BubbleSort1(int *a, int arraySize)
{
int i, j, temp;
typedef int Status;
Status flag = 1;
for (i = 1; i < arraySize && flag; i++)
{
flag = 0;
for (j = 0; j <arraySize - i; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
flag = 1;
}
}
}
}
//升序,优化
void BubbleSort2(int *a, int arraySize)
{
int i, j, temp, pos, bound;
pos = arraySize - 1;
while (pos)
{
bound = pos;
pos = 0;
for (j = 0; j <bound; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
pos = j;
}
}
}
}
八大排序算法(一)—bubble
最新推荐文章于 2024-03-13 20:29:57 发布
本文介绍了三种不同的冒泡排序算法:降序、升序及其优化版本。通过具体的C++实现代码展示了如何进行数组元素的比较与交换,从而实现数据的排序。优化后的冒泡排序减少了不必要的比较次数。
943

被折叠的 条评论
为什么被折叠?



