1 7 10 2 99 123 这一组数据进行冒泡排序 注意一点我们每进行一次就会有一个最大值到右边
就是每次我们就会减少一次比较的机会
两个数只需要比较一次
下面进行代码演示
这个是从小到大排列的
冒泡排序
int main()
{
//这是从小到大的思想
int arr[] = { 1,33,44,11,111,90 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
int tmp = 0;
int j = 0;
for ( i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz-(1+i); j++)//每排序一次就会少一次对比 我们可以拿2个数进行联想 大事化小的思想
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int j = 0; j < sz; j++)
{
printf("%d ", arr[j]);
}
}
从大到小
//这是从大到小排列的形式
int main()
{
int arr[] = { 1,99,22,111,289 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - (i + 1); j++)
{
if (arr[j] < arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (i = 0; i < sz;i++)
{
printf("%d ", arr[i]);
}
}
|